zoukankan      html  css  js  c++  java
  • Ansible自动化入门

    1、Ansible特点:
      (1)开箱即用,使用ssh协议
      (2)ansible一句话说明:无主无从架构,开箱即用,用完即走
      (3)实际是使用ansible的各个模块对主机进行操作
      (4)总结:
          Ansible的工作分成两大块
              ① 主机
              ② ansible本身的应用部分
                      Ⅰ. 使用模块对主机进行操作(核心模块和自定义模块)
                      Ⅱ. 主机清单,只有读取到主机清单才可以操作
                      Ⅲ. SSH连接
                      Ⅳ. 应用playbook完成复杂的应用部署工作
    2、Ansible安装
    ansible只需要在ansible controller节点(操作机)即可,其他节点可以通过SSH协议进行连接操作
        安装步骤:
        (1)安装epel-release YUM源,获取最新的ansible
             yum install epel-release -y
        (2)安装ansible
             yum install ansible -y
        (3)验证是否安装成功,使用root用户
             rpm -qa | grep ansible
    3、主机清单
        ansible controller 在对主机进行操作时,仅认主机清单中定义的主机列表,即从主机清单中读取到主机列表时,才可进行配置
        (1)主机清单作用
              Ⅰ 用于ansible controller配置主机时读取主机列表
              Ⅱ 实现主机分组
        (2)主机清单定义方法
              Ⅰ. 主机清单默认存储位置:
                  /etc/ansible/hosts
              Ⅱ. 定义方法1:直接在主机清单文件中写入主机IP或主机名(需要能够解析)
                  192.168.10.100
                  或
                  web1
              Ⅲ. 定义方法2:在主机清单文件中添加主机分组,然后把主机IP或主机名写入到分组内即可
                  [webgroup]
                  192.168.10.100
                  或
                  [webgroup]
                  web1
        (3)总结:
              Ⅰ. 用于读取主机IP或主机名称
              Ⅱ. 实现主机分组
              Ⅲ. 直接在主机清单文件中添加IP或主机名
              Ⅳ. 在主机清单文件中添加一个分组,然后再添加IP或主机名到分组中
    4、ansible应用案例
        (1)使用ansible ping模块实现测试主机互通性
            注意:ansible是通过ssh协议与其他主机通信的,如果ssh协议可以连接到其他主机就是通的,此时的ping其实是一个假象ping
            Ⅰ. ansible controller是通过ssh协议与其他主机进行通信的,如果主机量较多,不适合使用用户名和密码的方式,需要使用免密登录
    #多主机之间实现免密登录
     ①在ansible controller主机生成密钥
         非交互式生成免密钥
         ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
          交互式
         ssh-keygen -t rsa
      ②实现密钥同步
         ssh-copy-id 远程主机名称
            Ⅱ. ansible中模块使用是怎样的?
                在ansible controller主机清单中添加主机,在/etc/ansible/hosts文件中将其他主机的IP或主机名添加到清单中
    ansible命令格式
    命令格式:
        ansible 主机清单中IP或分组名称 -m 模块名
         -m  model

     ping模块的使用
     ansible IP或远程主机名或分组名 -m ping

            Ⅲ. 总结:
                ① 是假ping
                ② 登录问题:多主机使用免密登录
                ③ 定义主机清单文件
                ④ 使用ping模块
                    ansible IP -m ping
        (2)使用ansible cron模块实现配置多主机时间同步
              ansible cron 模块对主机进行时间周期性同步
                Ⅰ. 选择时钟源服务器
                    国内建议使用阿里时钟源:time1.aliyun.com
                    国际建议使用微软始终源:time.windows.com
                Ⅱ. cron 模块应用
    ansible 主机清单中的IP或分组名称 -m 模块 -a "参数"
                Ⅲ. 每小时与时钟源同步一次
    ansible 主机清单中的IP或分组名称 -m cron -a 'name="test cron1" job="ntpdate time1.aliyun.com" minute=0 hour=*/1'
         name    给定时起个名字
         job     需要执行的命令
         minute=0 hour=*/1   每小时执行一次job对应的命令
         注意:ntpdate是用来同步时钟的命令,在命令行直接输入 ntpdate time1.aliyun.com 会同步到阿里云服务器的时间
                Ⅳ. 在已经操作的主机清单的IP中输入 crontab -l,会发现增加了一个定时任务,格式为
    #Ansible: test cron1
    0 */1 * * * ntpdate time1.aliyun.com
    定时任务来自Ansible,每小时都会同步,只是进行了定时任务的操作
                Ⅴ. 总结
                    ① 选择时钟源服务器
                    ② ansible cron 批量服务器周期性计划任务定义
    更多ansible用法:参考博主三颗呦,https://blog.51cto.com/u_14163901/2384320
  • 相关阅读:
    第一阶段-坑爹猴
    终于做出来了
    一天就制作成了这些
    累成狗做出来的
    一周的学习,组合起来的成就
    刚刚出炉的搜狗浏览器最新版本
    自己动手设计了一下下百度首页
    数论:卢卡斯定理(求组合数)
    数据结构:ST表模板(可维护区间RMQ)
    快读和快写(可以使用__int128)
  • 原文地址:https://www.cnblogs.com/wqs-Time/p/14638164.html
Copyright © 2011-2022 走看看