Ansible Playbook 基础
基础
ansible-playbook 常用选项
Host 和 Users
tasks
handlers
当配置文件改变时,调用handlers触发重启
在ansible2.2之后,可以使用listen
创建”主题”,tasks会通知这些”主题”
运行一个 Playbook
ansible-Pull
客户端主动拉取
ansible-lint(语法检查)
playbook
语法及规范检查工具, 默认安装时并为安装, 使用yum install -y ansible-lint
进行安装即可
使用方法:
当然, 你也可以使用ansible-playbook
自带的ansible-playbook --syntax-check
来检查
ansible-galaxy
ansible-galaxy
客户端允许您从Ansible Galaxy下载角色,并且还提供了一个出色的默认框架来创建您自己的角色.
进阶
import_tasks & include_tasks
二者区别:
import*
: 预处理运行
include*
: 中途运行
如果任务就一个的话,两个用哪个都无所谓.
Role
Role 目录结构
示例及使用
在ansible2.4之后,可以使用import_role
和include_role
:
variables
在playbook
中直接定义:
在文件中定义:
在命令行中传递:
传递json
或者json file
参考:https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#passing-variables-on-the-command-line
调用Facts
中的变量:
:information_source:注意:默认情况下执行命令或者playbook会先收集facts
,如果你知道你不需要任何来自facts
的数据,那么可以使用以下参数来进行关闭:
传递本地facts
:
在/etc/ansible/facts.d
目录下创建一个*.fact
的文件, 即可将本地facts
传递给主机setup
的ansible_local``facts
中去.
示例:
详情参考:https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#local-facts-facts-d
https://www.cnblogs.com/f-ck-need-u/p/7571974.html
注册与自定义变量:
with_item
迭代变量
inventroy
主机组变量和主机变量
:notebook:综合vars示例:
:small_airplane:扩展阅读:
lineinfile
该模块确保文件中包含特定行,或使用向后引用的正则表达式替换现有行。
只适用于一行内容.
replace
替换所有, 与lineinfile
不同
参考链接