Ansible教程:Jinja2 模板-使用变量、facts事实变量 作者:马育民 • 2026-09-27 20:25 • 阅读:10001 # 准备 playbook 创建 playbook 文件: ``` nano playbook_模板.yml ``` 内如: ```yaml --- - 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 ``` 内容: ```jinja2 # 自定义变量 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 ``` 原文出处:/show_1GW47qTXQ7bd.html