首页 > 解决方案 > Nginx 无法通过 Ansible 重启

问题描述

我在剧本中有一个任务,它试图像往常一样通过处理程序重新启动 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: yes命令才起作用。并且没有出现上述错误。

但是这一次,通过添加sudo:yes命令

  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?

标签: nginxansiblevagrant

解决方案


正确的语法是

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

请参阅了解权限提升:成为


推荐阅读