[{"data":1,"prerenderedAt":299},["ShallowReactive",2],{"project-16237558":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":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":37,"post_text":28,"what":40,"said":60,"maker_in_thread":123,"shape":125,"grid":130,"attempts":256,"same_week":261,"maker_shows":30,"maker_hidden":291,"reader_version":292,"card":293},"16237558","Interactive Ansible Tutorial","Interactive tutorial for learning Ansible by applying changes","ai","Show HN: Interactive Ansible Tutorial","https:\u002F\u002Fgithub.com\u002Fturkenh\u002Fansible-interactive-tutorial","github.com","erkanerol",1516951833,2018,170,50,225,2155,11,"notable","learning_science","interactive tutorial","web_app",[24,25,21,26],"ansible","configuration management","devops","quiet",null,{"positive":30,"neutral":31,"mixed":32,"critical":30},1,2,0,4,{"idea":35,"docs":36},{"positive":30,"critical":32},{"positive":32,"critical":30},[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,38,39,32,32,39,30,32,32,32,32,32,32,32],5,3,{"problem":41,"audience":49,"pricing":28,"motivation":28,"time_to_build":28,"stack":58,"openness":59,"stage":59,"team_size":59},{"value":42,"source":43,"evidence":44},"Learning Ansible by reading alone is ephemeral; hands-on practice helps","commenter",[45],{"id":46,"by":47,"text":48},"16240589","ffdixon1","OK, have to say this is pretty cool. Reading about how to do something is good, but ephemeral. Applying what you are learning (and making mistakes and figure out what went wrong)…",{"value":50,"source":51,"evidence":52},"people learning Ansible","inferred",[53,54],{"id":46,"by":47,"text":48},{"id":55,"by":56,"text":57},"16239658","sideshowb","It's a trap, Ender, this is not a tutorial!",[],"unknown",{"praise":61,"objections":66,"requests":92,"questions":100,"alternatives":101},[62],{"value":63,"source":43,"evidence":64},"Hands-on applying what you learn is a better way to learn than reading",[65],{"id":46,"by":47,"text":48},[67,81],{"value":68,"source":43,"evidence":69},"Thread is a debate on whether Ansible YAML\u002FJinja counts as code and is Turing complete",[70,74,77],{"id":71,"by":72,"text":73},"16238005","crdoconnor",">The YAML file is essentially code YAML is not turing complete and is hence not \"code\". That is a large part of what makes ansible such a powerful tool - it enforces a strict…",{"id":75,"by":72,"text":76},"16238126",">Ansible playbooks have variables, loops, conditionals, scoping rules, inheritance As far as I am aware, variables, scoping rules and inheritance don't imply turing completeness…",{"id":78,"by":79,"text":80},"16238135","Aissen","If only it were that simple. There are enough filters, that this is not true IMHO. I haven't gotten around to prove it yet, but I think it could be proven that the playbook…",{"value":82,"source":43,"evidence":83},"Ansible's YAML syntax is hard to work with",[84,88],{"id":85,"by":86,"text":87},"16238434","lolikoisuru","The ssh configuration is one of the reasons I still haven't been able to move to Ansible properly. I managed to get it working somewhat without any controlmasters but I would…",{"id":89,"by":90,"text":91},"16239094","drcongo","I came to Ansible from Puppet and Chef because in the early days, it was way easier to get going. But with almost every release it gets worse, and so much of this is down to the…",[93],{"value":94,"source":43,"evidence":95},"Add coverage of SSH setup for connecting to remote machines",[96],{"id":97,"by":98,"text":99},"16237827","collyw","For me the hardest part about Ansible was getting the ssh setup correct to connect to a remote machine. Having a quick browse of this tutorial I can't see much about that (maybe…",[],[102,109,116],{"value":103,"source":43,"evidence":104},"Propellor (Haskell config management)",[105],{"id":106,"by":107,"text":108},"16238182","arianvanp","This exists! and it's pretty awesome to use! https:\u002F\u002Fhackage.haskell.org\u002Fpackage\u002Fpropellor",{"value":110,"source":43,"evidence":111},"pyinfra",[112],{"id":113,"by":114,"text":115},"16246559","minusf","https:\u002F\u002Fpyinfra.readthedocs.io\u002F",{"value":117,"source":43,"evidence":118},"Puppet and Chef",[119],{"id":120,"by":121,"text":122},"16237916","oblio","CFEngine 1993 (for completeness) Puppet 2005 Chef 2009 Salt 2011 (also for completeness) Ansible 2012 OP's timeline is a bit off :)",{"comments":32,"answered":32,"key":124},[],{"commenters":126,"max_depth":127,"maker_replies":32,"first_comment_mins":128,"lifespan_hours":129},38,7,81,147,[131,135,137,140,143,146,149,151,152,155,157,160,163,164,167,170,173,176,179,181,182,185,188,190,193,196,197,200,202,204,207,209,212,215,218,220,222,224,225,228,231,233,234,238,241,242,245,248,250,253],[132,32,32,133,134,32],"16237965","other\u002Fneutral\u002Fidea","jasim",[71,32,32,136,72,32],"commenter\u002Fneutral\u002Fnone",[138,32,32,136,139,32],"16238021","emmelaich",[141,32,32,136,142,32],"16238053","guywhocodes",[144,32,32,136,145,32],"16239896","gshakir",[147,32,32,136,148,32],"16238157","DerBesserWisser",[150,32,32,136,134,32],"16238066",[75,32,32,136,72,32],[153,32,32,136,154,32],"16238257","leg100",[156,32,32,136,72,32],"16238532",[158,32,32,136,159,32],"16239388","Spivak",[161,32,32,136,162,32],"16239332","jmcnulty",[78,32,32,136,79,32],[165,32,32,136,166,32],"16238704","dozzie",[168,32,32,133,169,32],"16238707","zeckalpha",[171,32,32,172,139,32],"16244423","other\u002Fneutral\u002Fnone",[174,32,32,172,175,32],"16240349","lima",[177,32,32,136,178,32],"16245980","hedwall",[180,32,32,133,139,32],"16238057",[106,32,32,172,107,32],[183,32,32,184,134,32],"16238209","other\u002Fpositive\u002Fidea",[186,32,32,172,187,32],"16238525","susi22",[189,32,32,136,139,32],"16244416",[191,32,32,172,192,32],"16238711","gtirloni",[194,32,32,172,195,32],"16238947","vesak",[89,32,32,172,90,32],[198,32,32,136,199,32],"16245225","xref",[201,32,32,136,90,32],"16280793",[203,32,32,172,145,32],"16239133",[205,32,32,172,206,32],"16241279","breatheoften",[208,32,32,172,139,32],"16244410",[210,32,32,172,211,32],"16253559","orev",[213,30,32,172,214,32],"16241775","ben_jones",[216,30,32,172,217,32],"16241852","kkoppenhaver",[46,31,38,219,47,32],"maker\u002Fpositive\u002Fidea",[97,39,39,221,98,32],"maker\u002Fneutral\u002Fdocs",[223,39,32,172,139,32],"16238012",[85,39,32,172,86,32],[226,39,39,221,227,32],"16238601","tokenizerrr",[229,39,32,172,230,32],"16240586","beefhash",[55,33,30,232,56,32],"project\u002Fcritical\u002Fdocs",[113,38,32,172,114,32],[235,236,32,172,237,32],"16237846",6,"angarg12",[239,236,32,136,240,32],"16237873","FooBarWidget",[120,236,32,172,121,32],[243,236,32,172,244,32],"16238696","dullgiulio",[246,236,32,172,247,32],"16239885","liveoneggs",[249,236,32,136,237,32],"16242569",[251,236,32,172,252,32],"16238508","sergiosgc",[254,236,32,172,255,32],"16240500","cookiecaper",[257,260],{"id":258,"t":259,"points":39,"comments":32},"15333346",1506368084,{"id":4,"t":12,"points":14,"comments":15},[262,267,272,276,281,286],{"id":263,"name":264,"points":265,"category":266},"16274686","Observable",654,"dev_tools",{"id":268,"name":269,"points":270,"category":271},"16273609","D StatusPage",316,"infrastructure",{"id":273,"name":274,"points":275,"category":20},"16273171","upvote.pub",275,{"id":277,"name":278,"points":279,"category":280},"16249048","BucketCompressionTrick",188,"languages",{"id":282,"name":283,"points":284,"category":285},"16259542","Card Proxy Generator",162,"games",{"id":287,"name":288,"points":289,"category":290},"16246485","Project Board",149,"web_saas",false,"v2",{"id":294,"name":5,"line":6,"ai":295,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":296,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":297,"url":9,"mix":298,"praise":63,"objection":68,"sub":21},16237558,true,[24,25,21,26],"0000000000000000000000000005300310000000",[30,31,32,30],1794036562862]