第1章 ansible介绍
1.什么是ansible
1.python写的一套自动化运维工具
2.ansible基于SSH协议通讯
2.为什么需要ansible
1.有状态管理
2.批量部署,批量执行命令
3.统一配置管理,模板管理
4.批量收集主机信息
5.批量分发文件
3.如何学习ansible
0.打开ansible官方文档
1.你所需要的命令都有专门的模块
2.模块使用的语法是官方定义的
3.尽量少用shell模块
第2章 Ansible安装部署
yum install ansible -y
ansible --version
第3章 Ansible主机清单
1.什么是主机清单
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
2.主机分组执行
主机清单配置:
[root@m01 ~]# vim /etc/ansible/hosts
[web]
172.16.1.31
172.16.1.41
[nfs]
172.16.1.31
[backup]
172.16.1.41
分组执行测试命令:
ansible web -m ping
ansible nfs -m ping
ansible backup -m ping
3.所有的主机都执行
两种方法:
1.执行all就代表把所有主机全部执行
2.主机清单里把所有主机划分到一个组里,注意,一个主机可以属于多个组
主机清单配置:
[zabbix]
172.16.1.31
172.16.1.41
测试命令:
ansible all -m ping
ansible zabbix -m ping
4.SSH使用密码连接并且端口号不是22
主机清单配置:
[web]
172.16.1.31 ansible_ssh_port=9527
172.16.1.41
测试命令:
ansible web -m ping
5.同组主机SSH端口号不一样,账号密码也不一样
方法1: 修改主机清单配置:
前提条件,需要提前把主机信息加入到know_host文件里
[web]
172.16.1.31 ansible_ssh_port=9527 ansible_ssh_pass='12345678'
172.16.1.41 ansible_ssh_port=9528 ansible_ssh_pass='123456'
方法2: 修改ansible配置文件,打开取消认证的注释
host_key_checking = False
测试命令:
ansible web -m ping
6.同一组连续的IP
主机清单配置:
[zabbix]
172.16.1.[31:41]
测试命令:
ansible zabbix -m ping
7.同一组具有相同的变量
主机清单配置:
[web]
172.16.1.31 ansible_ssh_pass='12345678'
172.16.1.41 ansible_ssh_pass='123456'
[web:vars]
ansible_ssh_port=9527
测试命令:
ans