1、工作机制
ansible基于python,ssh模块,,所以管理主机需要这两个模块,ansible节点是linux,客户端可以是window
2、环境,部署
环境
server1:172.25.17.101 | ansible |
server2:172.25.17.102 |
node |
server3:172.25.17.103 | node |
安装
yum源配置:
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64
yum install ansible -y 依赖关系自动解决
创建专用用户
server1,server2,server3
useradd ansible
passwd ansible
server1:
su - ansible
ssh-keygen 做免密,方便ansible部署
ssh-copy-id server2
ssh-copy-id server3
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 自己认自己
同步配置文件
server1:
cd /etc/ansible
ls
ansible.cfg hosts roles
su - ansible
mkdir ansible
cd ansible
vim ansible.cfg
[defaults]
inventory = ./hosts 指定hosts位置
[privilege_escalation] 需要超级用户权限时可以直接切换为超级用户,不需要密码
become=True
become_method=sudo
become_user=root
become_ask_pass=False
vim hosts
[webserver] 这个里边时主机分组,在部署服务时可以根据分组来部署不同的服务
server2
server3
server4
server1,server2,server3
vim /etc/sudoers
ansible ALL=(ALL) NOPASSWD:ALL
测试:
ansible all -m ping -u ansible -b -m 指定模块 -u 指定用户 -b 使用超级用户权限
ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd" -m 指定copy模块
ansible test -a "ls /tmp" -a 指定要执行的命令