阶段五:企业级自动化配置工具之Ansible基础
相关介绍
背景描述
a)当服务器越来越多,Shell 脚本扛不住了!
想象你是公司的运维工程师,最初团队只有 2-3 台服务器,日常运维(比如批量更新软件、修改配置、重启服务)靠几条 Shell 命令或简单的脚本就能轻松搞定:
更新所有服务器的 Nginx:
for ip in 192.168.1.{100..102};
do
ssh root@$ip "yum update nginx -y";
done执行结果:
- 成功后应以该命令实际输出、生成的文件或目标服务状态为准;失败时先阅读终端报错,再核对命令参数和运行环境。
关键参数:
注意事项:
三台机器,一台管理,两台被管理
| 编号 | IP | 角色 |
|---|
配置说明:
**关键参数:**
**注意事项:**[webserver] 192.168.88.130 192.168.88.131
192.168.88.103 | SUCCESS => { }
192.168.88.102 | SUCCESS => { }
**注意事项:**
192.168.88.103 | SUCCESS => {
}
192.168.88.102 | SUCCESS => {
}https://docs.ansible.com/ansible/latest/inventory*guide/intro*inventory.html
Ansible通过一个"主机清单"功能来实现服务器分组。
Ansible的默认主机清单配置文件为/etc/ansible/hosts
案例1:
[起始值:结束值],包含起始值也包含结束值
案例2:
[nginx]注意事项:
注意:
nginx1别名
ansible_ssh_host:要连接的主机的IP地址
ansible_ssh_port:ssh对应的端口号
ansible_ssh_user:用户名
ansible_ssh_pass:密码案例5:
[nginx]
**注意事项:**
......如果要查看ping模块的用法,使用下面命令(其它模块以此类推)
官网模块文档:https://docs.ansible.com/ansible/2.9/modules/list*of*all_modules.html
中文文档:https://ansible-tran.readthedocs.io/en/latest/docs/modules.html
https://docs.ansible.com/ansible/latest/modules/hostname_module.html#hostname-module
-m:模块名称
-a:具体参数和参数值基本格式为:
扩展:
在实际工作中,主机名称必须采用FQDN格式
功能名称.公司域名
web01.itcast.cn
web02.itcast.cn
mysql.itcast.cn
小结:
hostname在Linux操作系统中主要用于(获取或修改主机名称)
在Ansible里面,hostname专门用于主机名称,注意:Linux主机名必须要满足(FQDN)格式
https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module
案例1:创建一个目录
案例2:创建一个文件案例3:递归修改owner,group,mode
案例4:删除目录(连同目录里的所有文件)案例5:创建文件并指定owner,group,mode等
案例6:删除文件案例7:创建软链接文件
参数位置 src:源文件 path:快捷方式路径 state=link:代表创建软链接
小结:
基于file模块,我们可以创建文件、目录、软连接,也可以删除文件