[{"data":1,"prerenderedAt":245},["ShallowReactive",2],{"project-17559213":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":40,"post_text":41,"what":42,"said":58,"maker_in_thread":135,"shape":144,"grid":149,"attempts":210,"same_week":211,"maker_shows":37,"maker_hidden":238,"reader_version":239,"card":240},"17559213","Ansible Kernel","Run Ansible Tasks and Plays with Jupyter Notebook","title","Show HN: Ansible Kernel – Run Ansible Tasks and Plays with Jupyter Notebook","https:\u002F\u002Fgithub.com\u002Fansible\u002Fansible-jupyter-kernel","github.com","import_awesome",1531927167,2018,123,25,348,2155,17,"notable","dev_tools","ansible jupyter kernel","library",[24,25,26,27],"ansible","jupyter notebook","jupyter kernel","ansible playbook","debated",0,{"positive":31,"neutral":32,"mixed":29,"critical":33},5,2,3,10,{"design":36,"idea":38,"execution":39},{"positive":29,"critical":37},1,{"positive":33,"critical":32},{"positive":32,"critical":29},[37,29,29,29,29,33,31,29,31,29,31,29,29,31,37,33,31,37,29,29,29,29,29,29,29],null,{"problem":41,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":43,"openness":56,"stage":57,"team_size":57},[44,50],{"value":45,"source":46,"evidence":47},"Jupyter","maker",[48],{"id":49},"post",{"value":51,"source":46,"evidence":52},"Ansible",[53],{"id":54,"by":11,"text":55},"17561792","Ansible Kernel calls ansible-playbook on a specially constructed playbook. Ansible Kernel constructs a playbook with a two tasks in it: 1. wait for the kernel and 2. include…","open_source","unknown",{"praise":59,"objections":78,"requests":99,"questions":104,"alternatives":113},[60,72],{"value":61,"source":62,"evidence":63},"Notebook workflow suits ops tasks combining code, docs and step-by-step execution","commenter",[64,68],{"id":65,"by":66,"text":67},"17560694","rb808","I really like the idea of notebooks for ops tasks - its a great combination of code, documentation and step by step execution. I'm surprised it is not more popular.",{"id":69,"by":70,"text":71},"17560849","jarpineh","I have been making Jupyter notebook for managing our container environment. Some work is still only possible through Ansible, so I've been wondering how to integrate that. Well,…",{"value":73,"source":62,"evidence":74},"Works well on Binder and example playbooks are useful",[75],{"id":76,"by":70,"text":77},"17561585","Hi, and thank you. It works well. Example play books already contain the basics I'd need for my playbooks. Could you perhaps elaborate how the kernel directs Ansible? Also, is…",[79,90],{"value":80,"source":62,"evidence":81},"Unclear use case; Ansible console already exists",[82,86],{"id":83,"by":84,"text":85},"17559783","spydum","I... don’t get the use case for this? What am I missing?",{"id":87,"by":88,"text":89},"17560344","throwaway5752","Doesn't ansible core have ansible console already? This seems very bizarre and solution in search of a problem. An alexa skill for ansible would be interesting, but I wouldn't…",{"value":91,"source":62,"evidence":92},"Ansible's external state makes notebooks a poor fit",[93,96],{"id":94,"by":88,"text":95},"17560378","This isn't data science. The output of a playbook is dependent on a huge amount of external dependencies and state, and the execution can conditionally depend on that. Maybe…",{"id":97,"by":88,"text":98},"17560877","Sure, but that's not super different that series of commits along a feature branch. I think they accomplish the same goal. But am not dismissing notebooks as a way of doing that.…",[100],{"value":101,"source":62,"evidence":102},"Richer results view and Jupyter widgets support",[103],{"id":69,"by":70,"text":71},[105,109],{"value":106,"source":62,"evidence":107},"How the kernel directs Ansible execution",[108],{"id":76,"by":70,"text":77},{"value":110,"source":62,"evidence":111},"Differences between local and remote runs",[112],{"id":76,"by":70,"text":77},[114,118,122,128],{"value":115,"source":62,"evidence":116},"ansible-console REPL",[117],{"id":87,"by":88,"text":89},{"value":119,"source":62,"evidence":120},"Ara for tracing Ansible runs",[121],{"id":69,"by":70,"text":71},{"value":123,"source":62,"evidence":124},"Suitable Python wrapper for Ansible",[125],{"id":126,"by":70,"text":127},"17565040","This does sound like Ansible does not make it easy to control it from pure Python. It looks an ingenious way to get around it. I came across this Python wrapper around Ansible…",{"value":129,"source":62,"evidence":130},"Orgmode literate devops",[131],{"id":132,"by":133,"text":134},"17561580","hsitz","Reminds me of the \"Literate Devops with Emacs\" article that has been discussed on HN before. Orgmode is well suited for this sort of thing:…",{"comments":33,"answered":37,"key":136},[137,140,141],{"id":138,"text":139},"17561117","Try it on Binder here: https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fansible\u002Fansible-jupyter-kernel\u002Fmaster",{"id":54,"text":55},{"id":142,"text":143},"17566012","You're welcome. I hope that you find it useful.",{"commenters":145,"max_depth":146,"maker_replies":33,"first_comment_mins":147,"lifespan_hours":148},15,6,71,22,[150,154,158,160,162,165,169,171,173,175,177,179,181,183,184,187,190,193,194,197,200,204,205,207,208],[151,29,37,152,153,29],"17561222","project\u002Fcritical\u002Fdesign","tejtm",[155,29,29,156,157,29],"17561311","commenter\u002Fneutral\u002Fnone","massaman_yams",[159,29,29,156,153,29],"17562021",[161,29,29,156,157,29],"17563206",[163,29,29,156,164,29],"17563972","makmanalp",[166,29,33,167,168,29],"17564797","project\u002Fneutral\u002Fdesign","PurpleRamen",[69,37,31,170,70,29],"project\u002Fpositive\u002Fidea",[138,37,29,172,11,37],"project\u002Fneutral\u002Fnone",[76,37,31,174,70,29],"project\u002Fpositive\u002Fexecution",[54,37,29,176,11,37],"project\u002Fneutral\u002Fexecution",[126,37,31,178,70,29],"maker\u002Fpositive\u002Fexecution",[142,37,29,180,11,37],"maker\u002Fneutral\u002Fnone",[132,32,29,182,133,29],"other\u002Fneutral\u002Fnone",[65,33,31,170,66,29],[83,185,37,186,84,29],4,"project\u002Fcritical\u002Fidea",[188,185,33,167,189,29],"17559882","yjftsjthsd-h",[191,185,31,170,192,29],"17559915","vinayan3",[87,185,37,186,88,29],[195,185,29,156,196,29],"17560939","kbumsik",[198,185,29,156,199,29],"17560362","flossyspeaker",[201,185,29,202,203,29],"17559943","other\u002Fneutral\u002Fidea","1996",[94,185,29,156,88,29],[206,185,29,156,203,29],"17560447",[97,185,29,156,88,29],[209,185,29,156,203,29],"17561948",[],[212,217,221,226,230,234],{"id":213,"name":214,"points":215,"category":216},"17530086","Router7",461,"infrastructure",{"id":218,"name":219,"points":220,"category":216},"17540263","Hasura",382,{"id":222,"name":223,"points":224,"category":225},"17538770","Font Playground",131,"creative",{"id":227,"name":228,"points":229,"category":216},"17551796","CloudForecast.io",125,{"id":231,"name":232,"points":233,"category":20},"17557384","Bo",104,{"id":235,"name":236,"points":237,"category":20},"17556805","Pinpointer",91,false,"v2",{"id":241,"name":5,"line":6,"ai":238,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":242,"maker":11,"domain":10,"tier":19,"attempts":29,"strip":243,"url":9,"mix":244,"praise":61,"objection":80,"sub":21},17559213,[24,25,26,27],"1000035050500513510000000",[31,32,29,33],1794036567899]