我在剧本中有一个任务,试图照常通过处理程序重启nginx:
name: restart nginx
service: name=nginx state=restarted
它给了我以下错误:
RUNNING HANDLER [webtier : restart nginx] **************************************
fatal: [vagrant]: FAILED! => {"changed": false, "msg": "Unable to restart service nginx: Failed to restart nginx.service: Connection timed out\nSee system logs and 'systemctl status nginx.service' for details.\n"}
但是直到最后一次 sudo:是命令仍在起作用。并且上面的错误不会出现。
但是这次,通过添加 sudo:是命令
name: restart nginx
service: name=nginx state=restarted
sudo: yes
给出以下错误:
ERROR! conflicting action statements: service, sudo
The error appears to be in '/Users/mac/Documents/GitHub/petalandstem/ansible/roles/webtier/handlers/main.yml': line 28, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: restart nginx
^ here
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
如何成功重启nginx?
答案 0 :(得分:0)
正确的语法是
- name: restart nginx
service: name=nginx state=restarted
become: true
become_method: sudo
答案 1 :(得分:0)
sudo: yes
become: yes
那是因为现在可以选择begin_method,但是默认值为“ sudo”。
--become-method=BECOME_METHOD
privilege escalation method to use (default=sudo),
valid choices: [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | machinectl ]
答案 2 :(得分:0)
我面临着同样的问题
发生这种情况是因为 httpd 已经在端口80
上运行
因此我必须停止 httpd 服务
$ service httpd stop
然后尝试 ansible -剧本
答案 3 :(得分:-2)
首先不要在启用站点的文件中编辑文件,而是在可用站点中创建链接和编辑。
对我来说,问题出在启用站点的文件夹中。 当您从sites-available文件夹中删除默认站点时,您需要从sites-enabled文件夹中删除链接。
从为我启用的站点中删除默认链接后,我工作了。