{"id":7197,"date":"2019-01-05T16:41:13","date_gmt":"2019-01-05T16:41:13","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=7197"},"modified":"2019-01-08T12:10:04","modified_gmt":"2019-01-08T12:10:04","slug":"weekend-reading-ansible-linux-journal","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/05\/weekend-reading-ansible-linux-journal\/","title":{"rendered":"Weekend Reading: Ansible | Linux Journal"},"content":{"rendered":"<p>I&#8217;ve written about and trained folks on various DevOps tools through the years, and although they&#8217;re awesome, it&#8217;s obvious that most of them are designed from the mind of a developer. There&#8217;s nothing wrong with that, because approaching configuration management programmatically is the whole point. Still, it wasn&#8217;t until I started playing with Ansible that I felt like it was something a sysadmin quickly would appreciate.<\/p>\n<p>Part of that appreciation comes from the way Ansible communicates with its client computers\u2014namely, via SSH. As sysadmins, you&#8217;re all very familiar with connecting to computers via SSH, so right from the word &#8220;go&#8221;, you have a better understanding of Ansible than the other alternatives.<\/p>\n<p>With that in mind, I&#8217;ve written a few articles exploring how to take advantage of Ansible. It&#8217;s a great system, but when I was first exposed to it, it wasn&#8217;t clear how to start. It&#8217;s not that the learning curve is steep. In fact, if anything, the problem was that I didn&#8217;t really have that much to learn before starting to use Ansible, and that made it confusing. For example, if you don&#8217;t have to install an agent program (Ansible doesn&#8217;t have any software installed on the client computers), how do you start?<\/p>\n<h3><a href=\"https:\/\/www.linuxjournal.com\/content\/ansible-automation-framework-thinks-sysadmin\">Ansible, Part I: the Automation Framework That Thinks Like a Sysadmin<\/a><\/h3>\n<p>How to get started with Ansible. Shawn tells us the reason Ansible was so difficult for him at first was because it&#8217;s so flexible with how to configure the server\/client relationship, he didn&#8217;t know what he was supposed to do. The truth is that Ansible doesn&#8217;t really care how you set up the SSH system; it will utilize whatever configuration you have. This article will get you set up.<\/p>\n<h3><a href=\"https:\/\/www.linuxjournal.com\/content\/ansible-making-things-happen\">Ansible, Part II: Making Things Happen<\/a><\/h3>\n<p>Finally, an automation framework that thinks like a sysadmin. Ansible, you&#8217;re hired.<\/p>\n<p>Ansible is supposed to make your job easier, so the first thing you need to learn is how to do familiar tasks. For most sysadmins, that means some simple command-line work. Ansible has a few quirks when it comes to command-line utilities, but it&#8217;s worth learning the nuances, because it makes for a powerful system.<\/p>\n<h3><a href=\"https:\/\/www.linuxjournal.com\/content\/ansible-part-iii-playbooks\">Ansible, Part III: Playbooks<\/a><\/h3>\n<p>Playbooks make Ansible even more powerful than before.<\/p>\n<p>To be quite honest, if Ansible had nothing but its ad-hoc mode, it still would be a powerful and useful tool for automating large numbers of computers. In fact, if it weren&#8217;t for a few features, I might consider sticking with ad-hoc mode and adding a bunch of those ad-hoc commands to a Bash script and be done with learning. Those few additional features, however, make the continued effort well worth it.<\/p>\n<h3><a href=\"https:\/\/www.linuxjournal.com\/content\/ansible-part-iv-putting-it-all-together\">Ansible, Part IV: Putting It All Together<\/a><\/h3>\n<p>Roles are the most complicated and yet simplest aspect of Ansible to learn.<\/p>\n<p>I&#8217;ve mentioned before that Ansible&#8217;s ad-hoc mode often is overlooked as just a way to learn how to use Ansible. I couldn&#8217;t disagree with that mentality any more fervently than I already do. Ad-hoc mode is actually what I tend to use most often on a day-to-day basis. That said, using playbooks and roles are very powerful ways to utilize Ansible&#8217;s abilities. In fact, when most people think of Ansible, they tend to think of the roles feature, because it&#8217;s the way most Ansible code is shared. So first, it&#8217;s important to understand the relationship between ad-hoc mode, playbooks and roles.<\/p>\n<p><em>This article was originally published May 2018, updated in January 2019 to add additional resources.<\/em><\/p>\n<p><a href=\"https:\/\/www.linuxjournal.com\/content\/weekend-reading-ansible\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve written about and trained folks on various DevOps tools through the years, and although they&#8217;re awesome, it&#8217;s obvious that most of them are designed from the mind of a developer. There&#8217;s nothing wrong with that, because approaching configuration management programmatically is the whole point. Still, it wasn&#8217;t until I started playing with Ansible that &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/05\/weekend-reading-ansible-linux-journal\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Weekend Reading: Ansible | Linux Journal&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7197","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/7197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=7197"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/7197\/revisions"}],"predecessor-version":[{"id":7514,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/7197\/revisions\/7514"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=7197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=7197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=7197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}