ansible管理
- ansible进行远程管理的两个方法:
- adhoc临时命令。就是在命令行上执行管理命令。
- playbook剧本。把管理任务用特定格式写到文件中。
- 无论哪种方式,都是通过模块加参数进行管理。
adhoc临时命令
ansible 主机或组列表 -m 模块 -a "参数"
[root@control ansible]
Playbook剧本
- 常用于复杂任务的管理,以及管理经常要完成的任务
- playbook也是通过模块和它的参数,在特定主机上执行任务
- playbook是一个文件,该文件中需要通过yaml格式进行书写
YAML
- YAML Ain’t a Markup Language:YAML不是一个标记语言
yaml语法规范
- yaml文件的文件名,一般以yml或yaml作为扩展名
- 文件一般以
---
作为第一行,不是必须的,但是常用 - 键值对使用冒号
:
表示,冒号后面必须有空格。 - 数组使用
-
表示,-
后面必须有空格。 - 相同的层级必须有相同的缩进。如果缩进不对,则有语法错误。每一级缩进,建议2个空格。
- 全文不能使用tab,必须使用空格。
配置vim适应yaml语法
[root@control ansible]
set ai
set ts=2
set et
编写playbook
- 一个剧本(即playbook),可以包含多个play
- 每个play用于在指定的主机上,通过模块和参数执行相应的任务
- 每个play可以包含多个任务。
- 任务有模块和参数构成。
---
- 名字: 猴王初问世
职员表: 猴哥, 大马猴
场景:
- 名字: 石头裂开了
- 名字: 天宫震颤了
- 名字: 官封弼马温
职员表: 猴哥, 玉皇大帝
场景:
- 名字: 太白金星骗猴哥
- 名字: 猴哥天宫放马
- 编写用于测试连通性的playbook,相当于执行ansible all -m ping
[root@control ansible]
---
- name: test network
hosts: all
tasks:
- name: task 1
ping:
[root@control ansible]