Nginx无法通过Ansible重新启动

时间:2019-11-28 14:20:58

标签: nginx ansible vagrant

我在剧本中有一个任务,试图照常通过处理程序重启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?

4 个答案:

答案 0 :(得分:0)

正确的语法是

- name: restart nginx  
  service: name=nginx state=restarted
  become: true
  become_method: sudo

请参见Understanding privilege escalation: become

答案 1 :(得分:0)

  • Ansible 1.x:sudo: yes
  • Ansible 2.x: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文件夹中删除链接。

从为我启用的站点中删除默认链接后,我工作了。