首先我们创建一个 名为template的目录(建议与 playbook 目录为同一层级) [root@ansible ansible]# mkdir templates [root@ansible ansible]# ls ansible.cfg templates test_template.yml 新建一个template 模板 nginx.conf.j2,注意后缀名为 .j2,并且将 nginx 配置文件复制到 template 模板下 cp /etc/nginx/nginx....
template模块用于生成一个模板,并可将其传输至远程主机上。 //将根目录下的anaconda-ks.cfg传送到受控主机下的/tmp/下,并赋予775的权限 [root@ansible ~]# ansible 192.168.10.150 -m template -a 'src=~/anaconda-ks.cfg dest=/tmp/ mode=0775'192.168.10.150 | CHANGED => {"ansible_facts": {"discove...
//将设置好的163源传到受控主机 [root@ansible ~]# ansible 172.16.103.129 -m template -a 'src=/etc/yum.repos.d/CentOS7-Base-163.repo dest=/etc/yum.repos.d/163.repo'172.16.103.129 | SUCCESS => { "changed": true, "checksum": "60b8868e0599489038710c45025fc11cbccf35f2", "dest": "/e...
Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件,可以看作是一个编译过的模板文件,用来产生目标文本,传递Python的变量给模板去替换模板中的标记。 1. 先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变量 cp /etc/httpd/conf/httpd.conf /opt/httpd.conf.j2 vim /opt/httpd.conf.j2 L...
Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件,可以看作是一个编译过的模板文件,用来产生目标文本,传递Python的变量给模板去替换模板中的标记。 1. 准备 .j2 模板文件 先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变量 cp/opt/httpd.conf /opt/httpd.conf.j2vim/opt/httpd.conf....
template模块 如果只是复制静态文件,使用copy模块就可以了;但是如果在复制的同时需要根据实际情况修改部分内容,那么就需要用到template模块了。 比如我们在分发配置文件时,每个配置文件需要根据远程主机的一些属性不同而配置不同的值,对于需要替换的部分,我们就可以使用template模块来进行替换。template模块使用的是Python中的...
图例的配置和刚才的b.yml剧本几乎一样,但是注意在roles中,handler不能再和tasks放在一起了,要单独定义在handlers目录中;而且template处指定的源是一个相对路径,相对路径就是roels/testrole/templates这个目录中,所以我们把所有的j2配置模板放在这里就好。
如:template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf http.conf.j2必须是完整的文件内容,因为这是覆盖操作,而非只选择性远程主机替换变量,dest要指定文件名,如果是目录就相当于copy了http.conf.j2到远程目录下,不是我们要的结果。 B:when语句:在tasks中使用,Jinja2的语法格式 ...
template:src: /path/to/template.j2 dest: /etc/myapp.conf owner: root mode: '0644'debug 模块:用于在调试时输出变量或表达式的值。- name: Debug a variable debug:var: my_var - name: Debug an expression debug:msg: "{{ my_var | map('upper') | join(',') }}"git 模块:用于在远程...
其中template文件的内容为: 代码语言:javascript 复制 [root@ansible~]# cat template The hostname:{{ansible_hostname}}TheIPis:{{ansible_default_ipv4.address}}[root@ansible~]# 执行结果:(在目标机上看到文件里面的变量被实际值替换) template 也具体和copy一样的功能,如:设置文件权限、文件备份,以及验证功...