一、ansible文件管理常用的模块
-
file模块:创建文件/目录,删除/目录文件等
-
copy模块:将控制节点的文件送到被管理主机上
-
lineinfile模块:向文件输入内容
-
stat模块:显示文件的状态信息
-
fetch模块:从被管理主机拉取文件到控制节点
-
blockinfile模块:向文件中插入一段话,并在前面和后面写备注
-
synchronize模块:文件同步
-
tmplate模块:与copy模块差不多,但是可以将jinja2模板内的变量替换成需要的
二、jinja2模板
1、特殊变量ansible_manage
ansible_manage变量设置在ansible.cfg文件中,可以使用jinja2中调用,可以放在开头防止其他人动。
ansible.cfg文件
bash
ansible_managed = Ansible managed
jinja2文件中
bash
{{ ansible_managed }}
2、jinja2语法结构
1、引用变量
bash
{{ 变量 }}
2、注释
sql
{# 内容 #}
3、循环
rust
{% for i in list %}
内容
{% endfor %}
{#
list指的是循环次数,通常使用列表
#}
perl
{% for myhost in users if not myuser == "root" %}
内容
{% endfor %}
4、条件判断
perl
{% if XXX %}
内容
{% elif %}
内容
{% else %}
内容
{% endif %}
{#
xxx 如果指的是变量,变量可以使用中括号
#}