实施playbook
1.编写和运行 playbook
查看指定用户的临时命令
ansible -m user -a "name=student uid=1000 state=present" servera.lab.example.com
yaml 格式通常以 yml 为扩展名,yaml 对于缩进量没有严格要求,但是有两个基本原则
1.处于同一层次结构中同一级别的数据元素必须具有相同的缩进量
2.如果项目属于其他项目的子项,其缩进量必须大于父项
安装apache
vim http.yml
# ansible-playbook http.yml 执行
开启服务
# ansible-playbook --syntax-check service.yml 检测语法
# cat service.yml
# ansible-playbook -C service.yml 空执行
# ansible-playbook service.yml 执行
检测
# systemctl status httpd 在控制主机查看
##提高输出详细程度 ansible-playbook 默认输出不提供详细任务执行信息。
-v 参数提供,共四个级别:
-v #显示任务结果 -vv #显示任务结果和任务配置
-vvv #包含关于与受管主机的连接信息
-vvvv #增加连接插件相关的额外详细程度选项(包括受管主机上用于执行脚本的用户及所 执行的脚本)
练习
安装apache并且开启服务,修改默认页面
1.
# vim ansible.cfg
# vim inventory
# vim site.yml
# vim index.html
# ansible-playbook --syntax-check site.yml 检测语法
# ansible-playbook site.yml 执行
检测
# systemctl status httpd 查看服务
# firefox 192.168.1.10
# firefox 192.168.1.11
2.实施多个play
vim serverb.yml
# ansible-playbook --syntax-check serverb.yml 检测语法
# ansible-playbook serverb.yml 运行
3. 管理变量
1. ansible 变量简介
变量可能包含下面这些值: 要创建的用户、要安装的软件包、 要重启的服务、 要删除的文件、 要从互联网检索的文档
命名变量:
变量名称必须以字母开头,并且只能含有字母、数字和下划线
定义变量
三个范围级别
全局范围:从命令行或 ansible 配置设置的变量
play 范围:在 play 和相关结构中设置的变量
主机范围:由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量
'如果多个级别上定义了相同名称的变量,优先采用级别最高的变量,窄范围优先于广范围'
2. playbook 中的变量
1.常见方式:在 playbook 开头的 vars 块中:
vim vars.yml
2.在外部文件定义 playbook 变量
在 users.yml 文件中写入
vim test.yml
#在 playbook 中使用变量
将变量名称放在花括号内即可
# vim test2.yml