我们现在正在调查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
一般来说,使用ansible和配置服务器与 nginx,php-fpm和mysql等服务而不强制重启的常见模式是什么?
该服务模块可以做到重载用state=reloaded
.
如果服务器上已存在相同版本,则不会上载配置文件.因此,如果您service: name=nginx state=restarted
在处理程序中使用,则重新加载将不会是触发器.
您也可以使用,service: name=nginx enable=yes
因此服务在启动时启动(因此start
,只有reload
在需要时才需要明确地使用nginx ).