Jur*_*man 6 php mysql nginx provisioning ansible
我们现在正在调查Ansible以配置我们的服务器.这是一个默认的nginx,php-fpm和mysql设置.但是,我想知道这些软件包的安装以及如何使playbook在运行的服务中具有幂等性.
对于nginx,我们有一个默认值nginx.conf
和一些文件conf.d/
.对于php,我们有一个php.ini
,一个php-fpm.conf
,一个池pool.d/
和一些ini文件conf.d/
.是否想要覆盖每个ansible playbook call上的所有文件?
如果所有配置都被覆盖,是否可以执行service nginx reload
,service php5-fpm reload
即使服务器负载很重?对于初始安装,a reload
将无法启动服务器,因此我必须首先检查状态并根据它,在start
和之间切换reload
?
如果我寻找带有nginx安装的playbooks,他们经常使用将重启nginx的处理程序.但是,这不是优雅的,所以我不喜欢这种方法:
service: name=nginx state=restarted
Run Code Online (Sandbox Code Playgroud)
一般来说,使用ansible和配置服务器与 nginx,php-fpm和mysql等服务而不强制重启的常见模式是什么?
该服务模块可以做到重载用state=reloaded
.
如果服务器上已存在相同版本,则不会上载配置文件.因此,如果您service: name=nginx state=restarted
在处理程序中使用,则重新加载将不会是触发器.
您也可以使用,service: name=nginx enable=yes
因此服务在启动时启动(因此start
,只有reload
在需要时才需要明确地使用nginx ).
在 #ansible IRC 频道上我已经得到了一个有效的答案。apt 系统的一般模式是安装后启动服务。因此,您可以完全省略start
,并且仅reload
在配置更改的情况下。
设置如下(以 Nginx 为例)
这应该足够了;当未安装Nginx时,执行步骤1,2和3。当 Nginx 安装并且配置正确时,不会发生重新加载。如果我们更新配置,第 2 步将导致更改,因此会发生重新加载。
这应该足以涵盖所有情况。
归档时间: |
|
查看次数: |
4068 次 |
最近记录: |