作者:我想要的幸福12_816 | 来源:互联网 | 2023-09-15 17:39
Ansible 中文权威指南 1.运维自动化应用场景
操作系统预备自动化:快速实现应用配置,软件配置,提高准确性 配置自动化:ansible 开箱即用,使用ssh 协议 监控自动化 系统和应用监控 日志监控 代码持续集成与代码持续发布自动化 2.ansible :无主无从架构,开箱即用,用完即走 需要对主机进行操作那么就要加到host inventotary 里面,不认识的主机是不会操作,是ssh 协议进行操作;ansible 使用模块来进行操作,有core module 也有custom module;playbook-剧本,完成复杂应用的部署 3.ansible 安装 安装epel-release YUM 源–> 安装ansible yum -y install epel-release yum -y install ansible rpm -qa |grep ansible 或者ansible 按tab 补全就可以看到了
主机清单 如果主机清单里面没有的时候,就没办法操作主机 -用于ansible controller 配置主机的时候读取主机列表 -实现主机分组 主机清单存储位置: /etc/ansible/hosts **方法一:**直接在主机清单里面写入主机IP或者主机名(需要DNS 来解析) 192.1.1.1 #或 web1
**方法二:**在主机清单文件中添加主机分组,然后把主机IP或者主机名写入分组即可[webgroup]192.168.2.4#或[webgroup]web1
5.ansible 应用案例一:免密登录,ping 模块 ansible controller 是通过ssh 协议与其他主机进行通信的,如果主机较多,使用用户名和密码合适吗? ansible controller 是对其他主机操作时,仅识别主机清单中的主机,那么如何定义主机清单呢? ansible 模块中使用的格式是怎样的?
第一步:实现多主机之间免密码登录**如果想要实现从A免SSH密码登录B,那么就把A的公钥放到B上。**#在ansible controller 生成秘钥**ssh-keygen -t esa -f /root/.ssh/id_rsa -N ''****ls /root/.ssh** --> id_rsa 私钥 id_rsa.pub 公钥, 以后当下主机只要一免密码登录就会known_hosts 里 面添加一个#实现秘钥同步/usr/bin/ssh-copy-id , 复制的是公钥**ssh-copy-id remotehostname1**-->authorized_keys第二步:定义主机清单/etc/ansible/hosts第三步:ping 模块使用ansible 主机清单IP/分组名称 -m 模块**ansible 192.168.216.33 -m ping** 其实不是真ping ,只是ssh 能连接上了
6.ansible 应用案列二:cron 模块实现配置多主机时间同步
第一步:选择时钟源服务器国内建议用time1.aliyun.com国外建议用time.windows.com第二步:cron模块应用time.windows.comansible 主机清单中IP 或分组名称 -m 模块 -a "参数"**ansible 192.168.216.33 -m cron -a 'name="test" job="ntpdate time1.aliyun.com" minute=0 hour=*/1'**#每个小时同步一次#批量周期性服务器计划任务定义**crontab -l**
7.ansible 应用案列三:copy 模块 实现多主机配置文件同步 第一步:准备本地域名解析文件 cat /etc/hosts 第二步:copy 模块应用 ansible 命令格式 ansible 主机清单中IP 或分组名称 -m 模块 -a “参数”
#copy模块应用,仅仅用于本地文件copy 到远程主机 ansible 192.168.216.20 -m copy -a “src=/etc/hosts dest=/etc/hosts”
#远程主机验证 cat /etc/hosts
总结 1.有大量应用部署的时候或者软件配置更改的时候会用到,提高效率和准确性,降低用工成本 2.ansible(无主无从架构,任何一台主机安装了ansible 就是controller ;开箱即用,ssh),saltstack,puppet 3.ansible 工作原理是模块化加主机清单的形式