我正在写一个ansible脚本来在centos 7中部署django。我的问题在于nginx。
我创建了/ etc / nginx / sites-available和/ etc / nginx / sites-enabled目录,如果http {}阻止,则必须在底部的/etc/nginx/nginx.conf文件中包含站点。
在创建相应目录并复制配置文件后,如何在ansible脚本中的http {}块内插入行include /etc/nginx/sites-available/*.conf
?
输出应为
http {
.....
.....
server {
.......
}
include /etc/nginx/sites-available/*.conf;
}
答案 0 :(得分:2)
不要使用lineinfile
你会在某些时候后悔。每个人都这样。
您应该创建一个模板,然后使用ansible加载它。
#file: templates/nginx.conf.j2
http {
.....
.....
server {
.......
}
include /etc/nginx/sites-available/*.conf;
}
#file: main.yml
- name: "Load nginx config"
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
如果您需要更改配置文件中的任何内容,这将使您的配置管理变得更加容易。
答案 1 :(得分:1)
您可以使用lineinfile module。这样的事情应该有效:
- lineinfile: dest=/etc/nginx/nginx.conf regexp="^include /etc/nginx/sites-available/*.conf;" insertbefore="server {" line="include /etc/nginx/sites-available/*.conf;"
这将在服务器块之前插入行。你可以使用insertbefore和insert after以及不同的正则表达式。