使用Ansible的Playbook修改nginx配置文件
阿新 • • 發佈:2018-02-06
static cati server ane playbook write mar req ansi 目錄結構:
文件內容
tasks 目錄下的“file.yml”文件,內容如下:
tasks目錄下的“main.yml”
templates目錄下的“nginx.conf.j2”
{% if nginx_use_proxy %} {% for proxy in nginx_proxies %} upstream {{ proxy.name }} { server {{ ansible_eth0.ipv4.address }}:{{ proxy.port }} } {% endfor %} {% endif %} server { listen 80; server_name {{ nginx_server_name }}; access_log off; error_log /dev/null crit; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl; server_name {{ nginx_server_name }}; ssl_certificate /etc/nginx/ssl/{{ nginx_ssl_cert_name }}; ssl_certificate_key /etc/nginx/ssl/{{ nginx_ssl_cert_key }}; root {{ nginx_web_root }}; index index.html index.html; {% if nginx_use_auth %} auth_basic "Restricted"; auth_basic_user_file /etc/nginx/{{ project_name }}.htpasswd; {% endif %} {% if nginx_use_proxy %} {% for proxy in nginx_proxies %} location {{ proxy.location }} { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Url-Scheme $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_redirect off; proxy_pass http://{{ proxy.name }}; } {% endfor %} {% endif %} {% if nginx_server_static %} location / { try_file $uri $uri/ =404 {% endif %} }
var目錄下的“main.yml”
---
nginx_server_name: www.test.com
nginx_web_root: /opt/test/
nginx_proxies:
- name: suspicious
location: /
port: 2368
- name: suspocoous-api
location: /api
port: 3000
執行入口文件“nginxconf.yml”
- name: Nginx Proxy Server‘s Conf Dynamic Create hosts: your IP vars: nginx_use_proxy: true nginx_ssl_cert_name: test.crt nginx_ssl_cert_key: test.key nginx_use_auth: true project_name: suspicious nginx_server_static: true gather_facts: true //收集主機配置信息 roles: - { role: nginxconf } - name: Nginx WebServer‘s Conf Dynamic Create hosts: your IP vars: nginx_use_proxy: false nginx_ssl_cert_name: test.crt nginx_ssl_cert_key: test.key nginx_use_auth: false project_name: suspicious nginx_server_static: false gather_facts: no roles: - { role: nginxconf }
使用Ansible的Playbook修改nginx配置文件