Ansible配置自动化工具安装及使用

Posted simplelearning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible配置自动化工具安装及使用相关的知识,希望对你有一定的参考价值。

一、运维自动化应用场景

1.操作系统预备自动化

2.配置自动化

帮助企业在大量服务器存在的情况下,快速实现应用部署、软件配置等一大利器。

优异方面:

  提高配置效率

  提高配置的准确性

  降低人工参与度

 

3.监控自动化  (系统与应用监控、日志监控)

4.代码持续集成与代码持续发布自动化

二、配置自动化产品

  1.absible    开箱即用,使用ssh协议

  2.saltstack    需要agent端配合,配置部署速度快

  3.puppet    老牌配置自动化工具,需要agent端配合

三、ansible介绍

技术图片

ansible主要分成两大块:

  ·主机

  ·ansible 

    ·模块

    ·主机清单

    ·ssh

    ·Play books

3.2 ansible安装

ansible只需要ansible controller节点(操作机)安装即可,其他节点直接通过SSH协议进行连接操作

安装步骤:

  第1步:安装epel-release YUM源

  yum -y install epel-release

  第2步:安装ansible

  yum -y install ansible

技术图片

3.3主机清单

ansible controller 在对主机进行操作时,仅认主机清单中定义的主机列表,即从主机清单中读取到主机列表时,才可进行配置。

  ·用于ansible controller配置主机时读取主机列表

  ·实现主机分组

3.3.1主机清单定义方法

主机清单存储位置:/etc/ansible/hosts

方法一:

直接在主机清单文件尾部里写入主机IP地址或主机名(需要能够解析)

192.168.204.136或web1

方法二:

在主机清单文件中添加主机分组,然后把主机IP或主机名写入分组内即可

[webgroup]   #中间是主机分组名称

192.168.204.136或web1

四、ansible应用案例

  1)测试主机连通性

   ①创建ssh免密登录 ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ‘‘

   ②传输秘钥到对应主机 ssh-copy-id 192.168.204.136

   ③在ansible中定义主机清单,在/etc/ansible/hosts里添加主机 cat /etc/ansible/hosts

   ④使用ping模块 ansible 主机清单中IP或分组名称 -m 模块

    ansible 192.168.204.136 -m ping

   ⑤执行结果

  [root@localhost ~]# ansible 192.168.204.136 -m ping
  192.168.204.136 | SUCCESS => {
      "ansible_facts": {
          "discovered_interpreter_python": "/usr/bin/python"
      },
      "changed": false,
      "ping": "pong"
  }

  2)对多主机进行时间同步

  使用ansible cron模块实现配置多主机时间同步

  步骤:

  ①选择时钟源服务器

    ·国内建议使用阿里时钟源time1.aliyun.com

    ·国际建议使用微软时钟源time.windows.com

  测试主机时间源是否可用,若不可用安装ntpdate命令

  技术图片

  ②cron模块应用

    ansible命令格式:ansible 主机清单中的IP或分组名称 -m 模块 -a “参数”

    ansible 192.168.204.136 -m cron -a ‘name="test cron1" job="ntpdate time1.aliyun.com" minute=0 hour=*/1‘ 

    #每小时与时钟源同步一次

  技术图片

    #执行结果

技术图片

  3)使用ansible copy模块实现多主机配置文件同步

  提供项目中域名解析工作,直接使用主机本地文件来完成域名解析工作,每台主机都需要本地解析文件,请问如何使用ansible copy模块实现多主机本地域名解析文件的同步

 

   ①准备本地域名解析文件

    [root@localhost ~]# cat /etc/hosts
    192.168.204.136 web1
    192.168.204.137 web2

    192.168.204.138 web3

  ②copy模块应用

    #ansible命令格式:ansible 主机清单中IP或分组名称 -m 模块 -a “参数”

    #copy模块应用 仅用于将本地文件或目录copy到远程主机

      ·src 源文件路径

      ·desc 要拷贝到的目标文件路径

    ansible 192.168.204.136 -m copy -a "src=/etc/hosts dest=/etc/hosts"

  ③远程登录主机验证

  技术图片

总结:

                                             场景               大量应用部署时

技术图片

以上是关于Ansible配置自动化工具安装及使用的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维工具——ansible安装及模块介绍

自动化运维工具——ansible安装及模块介绍

自动化运维工具——ansible安装及模块介绍

Ansible自动化运维工具阐述及配置实现

自动化运维工具ansible——安装及模块管理

自动化运维之Ansible安装及命令使用