我们现在正在调查 Ansible 来配置我们的服务器。这是一个相当默认的 nginx、php-fpm 和 mysql 设置。但是,我想知道这些软件包的安装以及如何使 playbook 在服务运行时具有幂等性。
对于 nginx,我们有一个默认值nginx.conf
和conf.d/
. 对于 php,我们有一个php.ini
,一个php-fpm.conf
,一个池pool.d/
和一些 ini 文件conf.d/
。在每个 ansible playbook 调用上覆盖所有文件的想法是什么?
如果所有配置都被覆盖,是否可以执行 aservice nginx reload
甚至service php5-fpm reload
在服务器负载较重的情况下?对于初始安装,areload
不会启动服务器,所以我必须先检查状态,然后在start
和之间切换reload
?
如果我寻找安装了 nginx 的剧本,他们通常使用将重新启动 nginx 的处理程序。但是,这并不优雅,所以我不太喜欢这种方法:
service: name=nginx state=restarted
一般来说,在不强制重启的情况下,使用 ansible 和配置服务器以及nginx、php-fpm 和 mysql 等服务的常见模式是什么?