准备 playbook
创建 playbook 文件:
nano playbook_模板.yml
内如:
---
- name: 部署nginx配置模板
hosts: web
vars: # 定义变量
nginx_port: 8080
server_name: test.example.com
sites:
- name: site1
root: /data/site1
- name: site2
root: /data/site2
tasks:
- name: 推送渲染后的nginx.conf
template:
src: ansible_templates/nginx.conf.j2 # 本地模板文件路径(相对playbook)
dest: /etc/nginx/nginx_测试.conf # 远端生成文件路径
backup: true # 文件变化前备份原文件
模板使用变量、facts事实变量
创建 ansible_templates 目录,用于存放模板:
mkdir ansible_templates
创建模板
nano ansible_templates/nginx.conf.j2
内容:
# 自定义变量
port = {{ nginx_port }}
# 获取ansible内置facts
# 主机名
hostname = {{ ansible_facts.hostname }}
# ipv4地址
ip = {{ ansible_facts.default_ipv4.address }}
模拟执行:
ansible-playbook playbook_模板.yml -C -i ansible_client.ini
执行:
ansible-playbook playbook_模板.yml -i ansible_client.ini
执行
模拟执行
ansible-playbook playbook_模板.yml -C -i ansible_client.ini
执行
ansible-playbook playbook_模板.yml -i ansible_client.ini -b