- Ansible 批量命令下发工具
- 自动化运维工具
- 无需Agent,管理节点直接远程SSH管理被管理节点
- Ansible 自动化运维不同运用
- Ansible 命令行用法
- Ansible-playbook 剧本
- Ansible-playbook roles可重复利用的剧本
1.0 Ansible 命令行用法
1.1 Ansible 配置文件
1 | cat /etc/ansible/ansible.cfg |
1.2 Ansible 用法
1 | ansible ip -i Host.conf -uUserName -b -k -m shell -a "hostname" |
1.3 Inventory 内存参数
1 | # 参数 解释 例子 |
1 | # 定义批量密码 |
1.4 Ansible 模块介绍
1 | # 直接将命令传递到远端主机执行 |
1 | # src:复制本地文件到远程主机,绝对路径和相对路径都可,路径为目录时会递归复制.若路径以"/"结尾 |
1 | # 使用yum包管理器来管理软件包 |
1 | # name:必选项,服务名称 |
1 | # lineinfile模块 |
1 | # 主要用于获取主机信息,playbooks里经常会用的另一个参数gather_facts与该模块相关 |
2.0 Ansible-playbook 剧本用法
2.1 Ansible-playbook 剧本
- 将需要完成的任务写到xxx.yml剧本中以单个文件方式完成编写的playbook
1 | # cat hosts |
1 | 1. hosts文件中必须定义主机名或者IP地址 |
1 | 1. 模板文件需事先准备好并放到指定目录 |
1 | 1. hosts: all 此处"all"是ansible自带特殊变量,表示hosts文件中的所有IP地址或主机名。也可仅定义"web"主机组,表示只会执行web主机组下的相关IP地址 |
3.0 Ansible-playbook roles可重复利用的剧本
3.1 roles文件内各文件夹所代表的角色
- tasks目录, 至少应该包含一个名为main.yml的文件,其定义了此角色的任务列表,此文件可以使用include包含其它的位于此目录中的task文件
- files目录, 存放有copy或script等模块调用的文件
- templates目录, template模块会自动在此目录中寻找jinja2模板文件
- handlers目录, 此目录中应当包含一个main.yml文件,用于定义此角色用到的各handler。在handler中使用include包含的其它的handler文件也应该位于此目录中
- vars目录, 应当包含一个main.yml文件, 用于定义此角色用到的变量
- mate目录, 应当包含一个main.yml文件, 用于定义角色的特殊设定其依赖关系
- default目录, 为当前角色设定默认变量时使用此目录。应当包含一个main.yml文件
3.2 将需要完成的任务写到roles定义的各自角色中
1 | // httpd yml |
1 | # cp /path/my.cnf roles/db/files/ |
1 | # cat inventory/hosts |
- 本文作者: [email protected]
- 本文链接: https://www.ink8s.com/2023/01/05/ansible、Ansible-playbook、Ansible-playbook-roles-自动化运维工具/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!