<div id="article_content" class="article_content clearfix" style="height: 2742px; overflow: hidden;">
        <link rel="stylesheet" href="">
                        <div  class="markdown_views prism-tomorrow-night-eighties">
                <!-- flowchart 箭头图标 勿删 -->
                <svg xmlns="http://www.w3.org/2000/svg" >
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z"  ></path>
                </svg>
                                        <h4><a id="ansible_0" target="_blank"></a>ansible简介</h4>

ansible是新出现的自动化运维工具,ansible是一个配置管理和应用部署工具,基于python开发,集合了众多运维工具(pupet,cfengine,chef,func,fabric,saltstack)的优点。实现了批量系统配置,批量程序部署,批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供了一种框架。

ansible的优点

1.ansible融合了众多老牌运维工具的优点,基本上pubbet和saltsatck能实现的功能,ansible都可以显现。

2.轻量级,无需在客户端上安装agent,更新时,只需要在操作机上进行一次更新即可。

3.ansible是一个轻量级的工具,ansible不需要启动服务,仅仅只是一个工具,可以轻松实现分布式扩展。

4.批量任务执行可以写成脚本,而且不用分发的远程就可以执行。

5.ansible是一致性,高可靠性,安全性设计的轻量级自动化工具。

6.使用python编写,维护更加简单。

ansible基本架构

ansible cmd 并发5 ansible进程_CentOS

上图为ansible的基本架构,从上图可以了解到其由以下部分组成

核心:ansible
核心模块(Core Modules):这些都是ansible自带的模块
扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory):定义ansible管理的主机

ansible安装

在管理主机上面使用 yum 安装 Ansible。因为安装 Ansible 需要 epel 源,这里配置了阿里的 yum 源和 epel 源。

cd /etc/yum.repos.d/
  • 1

yum源

vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
 [updates]
 name=CentOS-releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲amp;repo=update…infra
 #baseurl=http://mirror.centos.org/centos/basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
 [extras]
 name=CentOS-releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲amp;repo=extras…infra
 #baseurl=http://mirror.centos.org/centos/basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7



epel源

vi epel.repo
[epel]
 name=Extra Packages for Enterprise Linux 7 - basearch
 failovermethod=priority
 enabled=1
 gpgcheck=0
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7


安装 Ansible:
# yum install ansible


安装完成,查看版本:

[root@ansible-manager ~]# ansible --version
ansible 2.5.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Aug  4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
Ansible配置文件

安装完毕,可以修改默认配置,一般不需要修改。

vi /etc/ansible/ansible.cfg

[defaults]

some basic default values…

#inventory = /etc/ansible/hosts # 清单(Inventory)文件的位置
 #library = /usr/share/my_modules/ # 存放 Ansible 模块的目录
 #module_utils = /usr/share/my_module_utils/
 #remote_tmp = ~/.ansible/tmp # 临时文件远程主机存放目录
 #local_tmp = ~/.ansible/tmp # 临时文件本地存放目录
 #plugin_filters_cfg = /etc/ansible/plugin_filters.yml
 #forks = 5 # 默认并发数
 #poll_interval = 15 # 默认轮询时间间隔
 #sudo_user = root # 默认sudo用户
 #ask_sudo_pass = True # 是否需要sudo密码
 #ask_pass = True # 是否需要密码
 #transport = smart
 #remote_port = 22 #指定连接被管理主机的管理端口,默认是22
 #module_lang = C
 #module_set_locale =


</div>
            <link href="" rel="stylesheet">
                                <div data-report-view="{"mod":"popu_387","dest":";}"></div>
                    
        <div class="person-messagebox">
            <div class="left-message"><a href="">
                <img src="" class="avatar_pic" username="xie_qi_chao">
            </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit "><a href="" data-report-click="{"mod":"popu_379","ab":"new"}" target="_blank">解启超</a></span>
                    <!-- 等级,level -->
                                            <img class="identity-icon" src="">                                            </div>
                <div class="text"><span>原创文章 409</span><span>获赞 72</span><span>访问量 5万+</span></div>
            </div>
                            <div class="right-message">
                                        <a class="btn btn-sm attented bt-button personal-watch" data-report-click="{"mod":"popu_379","ab":"new"}">已关注</a>
                                                            <a href="" target="_blank" class="btn btn-sm bt-button personal-letter">私信
                    </a>
                                </div>
                        </div>
                    
    </div>
</article>