您的位置:首页 > 运维架构 > Nginx

使用Ansible的Playbook修改nginx配置文件

2018-02-06 14:54 671 查看

目录结构:



文件内容

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 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  andible playbook