Linux | Ansible1 自动化运维核心基础
Ansible 通过命令行对远程主机 / 组执行操作,基础语法如下:
ansible [主机/组列表] -m 模块 -a "模块参数"
Ansible 所有模块的官方帮助文档查询工具,运维必备:
实操示例
扩展:设置默认模块为 shell
修改配置文件将默认模块从command改为shell,避免每次写-m shell:
编辑 Ansible 主配置文件:
vim /etc/ansible/ansible.cfg
在[defaults]段添加配置:
编写本地脚本(控制节点):
vim /root/test.sh # 脚本路径自定义
脚本内容(创建 3 个用户并设置密码):
添加执行权限:
chmod +x /root/test.sh
批量执行脚本(针对webservers组):
ansible webservers -m script -a "/root/test.sh"
验证执行结果:
ansible webservers -a "id zhangsan"
除了上述三个模块,还有raw模块,适用于被控节点未安装 Python 的场景(Ansible 大部分模块依赖 Python):
执行ansible webservers -m ping时,webservers是主机组,定义在/etc/ansible/hosts中:
针对-k选项的痛点,编写批量配置 SSH 免密的脚本,提升效率: