Ansible - templates实战

本文介绍如何使用Ansible的template模块动态生成PostgreSQL配置文件。通过定义特定的模版文件和YAML任务,可以在多个远程主机上批量创建并更新配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        templates是ansible的一个模块,其功能是根据模版文件动态生成配置文件,templates文件必须存放于templates目录下,且命名为.js结尾,yaml/yml文件需要和templates目录平级,这样我们在yml文件中调用模版的时候,就不需要写模版文件的路径,否则需要描述模版文件的路径,应为template模版会自动去找template目录下的模版文件。

编写templates模版

vi templates/postgresql.conf.j2

autovacuum_naptime = {{autovacuum_naptime}}

max_files_per_process = {{max_files_per_process}}

wal_keep_size = {{wal_keep_size}}

wal_log_hints={{wal_log_hints}}

port = {{port}}

application_name = {{application_name}}

​​​​​​ 

编写生成config文件Task

vi 2.1.yml

执行脚本

ansible-playbook -i ./hosts 2.1.yml -v

PLAY [all] **********************************************************************************************************************************************************************************************

TASK [create postgres config file] **********************************************************************************************************************************************************************

changed: [172.23.51.8] => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": true, "checksum": "997fb3be27548fbe969359137e6ad8d34f0d764c", "dest": "/home/postgres/data/postgresql.conf", "gid": 26, "group": "postgres", "md5sum": "8fd116b720aa6560e0d032973396003f", "mode": "0644", "owner": "postgres", "secontext": "unconfined_u:object_r:user_home_t:s0", "size": 27616, "src": "/home/postgres/.ansible/tmp/ansible-tmp-1663595136.15-25047-91312860667012/source", "state": "file", "uid": 26}

changed: [172.23.51.7] => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": true, "checksum": "997fb3be27548fbe969359137e6ad8d34f0d764c", "dest": "/home/postgres/data/postgresql.conf", "gid": 26, "group": "postgres", "md5sum": "8fd116b720aa6560e0d032973396003f", "mode": "0644", "owner": "postgres", "secontext": "unconfined_u:object_r:user_home_t:s0", "size": 27616, "src": "/home/postgres/.ansible/tmp/ansible-tmp-1663595136.13-25045-30802466220075/source", "state": "file", "uid": 26}

changed: [172.23.51.3] => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": true, "checksum": "997fb3be27548fbe969359137e6ad8d34f0d764c", "dest": "/home/postgres/data/postgresql.conf", "gid": 26, "group": "postgres", "md5sum": "8fd116b720aa6560e0d032973396003f", "mode": "0644", "owner": "postgres", "size": 27616, "src": "/home/postgres/.ansible/tmp/ansible-tmp-1663595135.89-25044-161306747051950/source", "state": "file", "uid": 26}

PLAY RECAP **********************************************************************************************************************************************************************************************

172.23.51.3 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

172.23.51.7 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

172.23.51.8 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

在远程主机查看执行结果

ansible -i ./hosts all -m shell -a "ls /home/postgres/data/postgres*"

172.23.51.7 | CHANGED | rc=0 >>

/home/postgres/data/postgresql.conf

172.23.51.8 | CHANGED | rc=0 >>

/home/postgres/data/postgresql.conf

172.23.51.3 | CHANGED | rc=0 >>

/home/postgres/data/postgresql.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值