ansible入门

1.ansible:无主从无架构,开箱即用,用完即走

配置自动化场景的好处:提高效率,提高准确性,降低用工成本

ansible工作原理:模块,主机清单

2.ansible安装

2.1 安装epel-release yum源

[root@manager121 ~]# yum install epel-release -y

2.2 安装ansible

[root@manager121 ~]# yum install ansible -y

3.主机清单

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

  • 用于ansible controller配置主机时读取主机列表
  • 实现主机分组

3.2主机清单定义方法
主机清单存储的位置:

[root@manager121 ~]# ls /etc/ansible/hosts
  • 方法一
    直接在主机清单文件里写入主机IP地址或者主机名(需要能够解析)
[root@manager121 ~]# vim /etc/ansible/hosts
192.168.0.13
#或
web1
  • 方法二
    在主机清单文件夹中添加主机分组,然后把主机IP或主机名写进去即可。
[root@manager121 ~]# vim /etc/ansible/hosts
[webgroup]
192.168.0.13

#或
[webgroup]
web1

4.ansible应用案例

4.1使用ansible ping模块实现测试主机互通性

  • 场景:准备三台服务器,了解主机之间的连通性是否正确,使用ansible模块对主机之间的连通性进行测试。

  • 步骤

     1.实现多主机之间免密登。
    
    #在ansible controller生成密钥
    [root@manager121 ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
    
    #实现密钥同步
    [root@manager121 ~]# ssh-copy-id 192.168.0.13
    
     2.定义主机清单
    
    [root@manager121 ~]# cat /etc/ansible/hosts
     192.168.0.13
    
     3.ping模块的使用
    
    [root@manager121 ~]# ansible 192.168.0.13 -m ping
    192.168.0.13 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/libexec/platform-python"
        },
        "changed": false,
        "ping": "pong"
    }
    

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

  • 场景:使用ansible cron模块对主机进行时间周期性同步。

  • 步骤

     1.选择时钟源服务器
     阿里时钟源 time1.aliyun.com
     微软时钟源 time .windows.com
     
     2.cron模块应用
    
    [root@manager121 ~]# ansible 192.168.0.13 -m cron -a 'name="test cron1" job="time1.aliyun.com" minute=0 hour=*/1'
    192.168.0.13 | CHANGED => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/libexec/platform-python"
        },
        "changed": true,
        "envs": [],
        "jobs": [
            "test cron1"
        ]
    }
    
    #在192.168.0.13主机查看计划任务
    [root@sc-docker-2 ~]# crontab -l
    #Ansible: test cron1
    0 */1 * * * time1.aliyun.com
    

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

  • 场景:使用ansible copy模块实现多主机本地域名解析文件同步。

  • 步骤:

     1.准备本地域名解析文件
    
    [root@manager121 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.0.102 www.chenran.com
    192.168.0.102 www.a.com
    192.168.0.102 www.b.com
    192.168.0.102 www.c.com
    192.168.0.102 www.d.com
    192.168.0.102 www.e.com
    192.168.0.102 www.f.com
    
     2.copy模块应用
    
    [root@manager121 ~]# ansible 192.168.0.13 -m copy -a "src=/etc/hosts dest=/etc/hosts"
    192.168.0.13 | CHANGED => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/libexec/platform-python"
        },
        "changed": true,
        "checksum": "374fd64f34a81cd6f4d8b7c5068999e25889e2bc",
        "dest": "/etc/hosts",
        "gid": 0,
        "group": "root",
        "md5sum": "253da76589e31aed995e07f70975bc05",
        "mode": "0644",
        "owner": "root",
        "secontext": "system_u:object_r:net_conf_t:s0",
        "size": 402,
        "src": "/root/.ansible/tmp/ansible-tmp-1616253663.8300848-110720-135714137613350/source",
        "state": "file",
        "uid": 0
    }
    
    #远程主机验证
    [root@sc-docker-2 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    192.168.0.102 www.chenran.com
    192.168.0.102 www.a.com
    192.168.0.102 www.b.com
    192.168.0.102 www.c.com
    192.168.0.102 www.d.com
    192.168.0.102 www.e.com
    192.168.0.102 www.f.com
    
    
    192.168.80.10 manager10
    192.168.80.11 node11
    192.168.80.12 node12
    

总结于b站黑马程序员视频

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值