文章目录
1.ANSIBLE-简介
简介
ansible是新出现的自动化运维工具,基于Python开发,
集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配
置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模
块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
工作原理图
2.部署
① dns resolve
环境
一台服务器
多台客服机
并在服务器上做域名解析,添加服务器名已经客服机名及IP
vim /etc/hosts
注:客户机无需配置
② install ansible
yum install -y epel-release
安装epel源,如果您在内网环境,请使用下方阿里YUM
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y ansible
检测部署是否完成
rpm -ql ansible
列出所有文件
rpm -qc ansible
查看配置文件
ansible --help
查看ansible帮助
ansible-doc -l
看所有模块(A10,华为,docker,EC2,aws等等广大厂商设备)
ansible-doc -s yum
看yum模块,了解其功能
install (`present' or `installed', `latest'),
or remove (`absent' or `removed')
yum list
Package name
enablerepo
3.ssh-key(可选)
免密码ssh-key的方式。
ssh-keygen
ssh-copy-id IP地址
推送公钥
4.ansible基础
①1.定义主机清单
vim /etc/ansible/hosts
host1
host2
*注意此处少一个主机。请留意*
② 测试连通性
ansible localhost -m ping
测试host1连通性
-m 指定模块。什么功能
ping只是其中一个模块。还有shell,yum等等
③简洁输出
ansible host1 -m ping -o
因为为添加用户与密码选项
添加用户与密码后
ansible host2 -m ping -uroot -k -o
去掉(yes/no)的询问
vim /etc/ssh/ssh_config
StrictHostKeyChecking no
systemctl restart sshd
修改前
修改后
④增加用户名 密码(添加变量)
vim /etc/ansible/hosts
[webservers]
host1
[webserver:vars]
ansible_ssh_user='root'
ansible_ssh_pass='777777'
效果
实现免密登录
5.Inventory -主机清单
①含义
清查;存货清单;财产目录;主机清单
② 增加端口
请将host1的sshd程序端口修改为2222
# vim /etc/ssh/sshd_config
Port 222