<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>自动化运维 on 翟志军 Jack Zhai</title>
    <link>https://showme.codes/tags/%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4/</link>
    <description>Recent content in 自动化运维 on 翟志军 Jack Zhai</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>showme.codes</copyright>
    <lastBuildDate>Mon, 12 Jun 2017 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://showme.codes/tags/%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>简单易懂Ansible系列 —— 解决了什么</title>
      <link>https://showme.codes/zh-cn/2017-06-12-ansible-introduce/</link>
      <pubDate>Mon, 12 Jun 2017 00:00:00 +0000</pubDate>
      <guid>https://showme.codes/zh-cn/2017-06-12-ansible-introduce/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Ansible&#34; loading=&#34;lazy&#34; src=&#34;https://showme.codes/assets/images/292372-a504ab242c05db6a.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;不知什么时候，Ansible的slogan从“IT Automation Software for System Administrators”变成了“AUTOMATION FOR EVERYONE”。&lt;/p&gt;
&lt;p&gt;从一个给系统管理员使用的工具变成了给所有人使用的工具。&lt;/p&gt;
&lt;p&gt;但是，现实中，发现了解Ansible的人，还是太少了。同时，自己断断续续学习Ansible也有一段时间，希望拿出来和大家交流。所以就决定不定期写写一个关于Ansible的系列。如果你觉得我写得还可以，到文末扫码请我喝杯茶。&lt;/p&gt;
&lt;p&gt;此文为“简单易懂Ansible”系列文章的开篇 —— Ansible解决了什么&lt;/p&gt;
&lt;h2 id=&#34;ansible解决了什么&#34;&gt;Ansible解决了什么&lt;/h2&gt;
&lt;p&gt;首先，它是一个运维工具。当然要解决运维过程中遇到的问题了。运维过程遇到了什么问题？&lt;/p&gt;
&lt;p&gt;想像一下，你要在一台新的机器上安装Tomcat，你会怎么样呢，条件反射的：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ssh user@111.111.111.111

wget -c http://apache.fayea.com/tomcat/tomcat-8.5.15.tar.gz

tar -zxf apache-tomcat-8.5.15.tar.gz
.....省略
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;好，10分钟后你愉快地完成了老板给你的任务。但是现在你需要给100台机器安装Tomcat呢？手工的重复100次？&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;懵逼满屏&#34; loading=&#34;lazy&#34; src=&#34;https://showme.codes/assets/images/292372-b33ed81e9618ca8a.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;而Ansible能让我们只定义一次，理论上可以在无限台机器上执行。换句话：&lt;strong&gt;减少运维工作中的重复工作&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;同时，如果是人工执行100次，那么失误是难免的！自动化运维工具会严格根据我们所给指令来执行，而不会因为失恋而手抖执行了：&lt;code&gt;sudo rm -rf /&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;不少人反对自动化，认为那样太危险，因为一不小心就在上百台机器删错文件。显然，他们没有注意到：自动化实现的是&lt;strong&gt;准确地执行指令&lt;/strong&gt;，解决人类执行任务时存在的指令理解不正确、执行不严格的问题。而机器不会出现这些问题的概念几乎为零。&lt;/p&gt;
&lt;p&gt;没有达到预期效果，往往是我们人类下达的指令不正确。&lt;/p&gt;
&lt;p&gt;所以，Ansible还解决了&lt;strong&gt;人执行指令不准确&lt;/strong&gt;的问题。&lt;/p&gt;
&lt;p&gt;如果使用Ansible来实现上述的运维需求，怎么做呢？你需要做三件事情：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;定义目标机器的列表：一种被称为inventory的类ini文件&lt;/li&gt;
&lt;li&gt;定义这些机器的配置：使用&lt;a href=&#34;https://en.wikipedia.org/wiki/YAML&#34;&gt;YAML&lt;/a&gt;格式的文件来描述你机器的配置&lt;/li&gt;
&lt;li&gt;执行 &lt;code&gt;ansible-playbook -i inventory playbook.yml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下是inventory文件：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[tomcat-servers]
111.111.111.111
112.112.112.112
....
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;而这些ip的配置写在一种被称为playbook的YAML文件中：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;---
- hosts: tomcat-servers
  tasks:
    - name: download tomcat
      get_url:
          url: http://apache.fayea.com/tomcat/tomcat-8.5.15.tar.gz
          dest: /tmp
          
    - name: unarchive tomcat to /usr/local
      unarchive:
          src: /tmp/apache-tomcat-8.5.15.tar.gz
          dest: /usr/local/
          remote_src: true
.....省略
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果你想再添加100台机器，你需要做的，也只是在inventory文件里添加100个ip，再执行一遍ansible-playbook命令。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
