php - 对于 ansible,优雅的重新加载是幂等的吗?

标签 php mysql nginx provisioning ansible

我们现在正在研究 Ansible 来配置我们的服务器。这是相当默认的 nginx、php-fpm 和 mysql 设置。但是,我想知道这些软件包的安装以及如何使剧本在服务运行时幂等。

对于 nginx,我们有一个默认的 nginx.confconf.d/ 中的一些文件。对于 php,我们有一个 php.ini、一个 php-fpm.conf、一个位于 pool.d/ 中的池和一些 ini 文件在 conf.d/ 中。在每次 ansible playbook 调用时覆盖所有文件的想法是什么?

如果所有配置都被覆盖,即使服务器负载很重,也可以执行 service nginx reloadservice php5-fpm reload 吗?对于初始安装,reload 不会启动服务器,所以我必须先检查状态,然后根据状态在 startreload 之间切换>?

如果我寻找安装了 nginx 的 playbook,他们通常会使用会重启 nginx 的处理程序。然而,这并不优雅,所以我不太喜欢这种方法:

service: name=nginx state=restarted

一般来说,使用 ansible 并为服务器提供服务的常见模式是什么,例如 nginx、php-fpm 和 mysql 无需强制重启

最佳答案

service module can do reload使用 state=reloaded

如果服务器上已有相同版本,则不会上传配置文件。因此,如果您在处理程序中使用 service: name=nginx state=restarted,则不会触发重新加载。

您还可以使用 service: name=nginx enable=yes 以便服务在启动时启动(因此无需显式启动 nginx,只需如果需要重新加载)。

关于php - 对于 ansible,优雅的重新加载是幂等的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20283294/

相关文章:

php - mysql select distinct 同时忽略一列

mysql - 如何为列表中的单个产品获取多个类别

php - 连接到多个表

php - 如何阻止对我的 JavaScript 文件的直接访问?

php - 已成功提交表单,但控制台中出现一个错误,例如发生数据库错误错误号 : 1048 - Codeigniter

nginx - 将请求重定向到 Nginx 中的两个上游服务器

node.js - Nginx - 多个后端的反向代理

apache - NGINX 和 APACHE 在一起还是只有 NGINX?

php - 获取数组的值,指定 array1 的值内的数组的值

mysql - 如何建立内容变成行的表