Ansible 服务重启失败

标签 ansible ansible-playbook sshd

我在使用 Ansible 重新启动 SSH 守护程序时遇到了一些麻烦。

我正在使用截至 2015 年 5 月 11 日的最新软件(Ansible 1.9.1/Vagrant 1.7.2/VirtualBox 4.3.26/Host: OS X 10.10.1/Guest: ubuntu/trusty64 )

tl;博士 : 我调用服务语法的方式似乎有问题。

原始用例(处理程序)的问题

剧本

- hosts: all
- remote_user: vagrant
- tasks:

  ...

  - name: Forbid SSH root login
    sudo: yes
    lineinfile: dest=/etc/ssh/sshd_config regexp="^PermitRootLogin" line="permitRootLogin no" state=present
    notify:
      - restart ssh

  ...

- handlers:
  - name: restart ssh
    sudo: yes
    service: name=ssh state=restarted

输出
NOTIFIED: [restart ssh] 

failed: [default] => {"failed": true}

FATAL: all hosts have already failed -- aborting

nginx 处理程序以几乎相同的语法成功完成。

任务也失败

剧本
- name: Restart SSH server
  sudo: yes
  service: name=ssh state=restarted

与处理程序用例相同的输出。

临时命令也失败

壳牌
> ansible all -i ansible_inventory -u vagrant -k -m service -a "name=ssh state=restarted"

库存
127.0.0.1:8022

输出
127.0.0.1 | FAILED >> {
    "failed": true,
    "msg": ""
}

框中的 Shell 命令有效

当我 SSH 并运行通常的命令时,一切正常。
> vagrant ssh
> sudo service ssh restart
ssh stop/waiting
ssh start/running, process 7899
> echo $?
0

命令任务也有效

输出
TASK: [Restart SSH server] ****************************************************
changed: [default] => {"changed": true, "cmd": ["service", "ssh", "restart"], "delta": "0:00:00.060220", "end": "2015-05-11 07:59:25.310183", "rc": 0, "start": "2015-05-11 07:59:25.249963", "stderr": "", "stdout": "ssh stop/waiting\nssh start/running, process 8553", "warnings": ["Consider using service module rather than running service"]}

正如我们在警告中看到的那样,我们应该使用服务模块,但我仍然不确定障碍在哪里。

最佳答案

正如上面的评论所说,这是一个 Ansible 问题,显然将在 2.0 版本中修复。

我刚刚更改了我的处理程序以使用 command模块并继续:

- name: restart sshd
  command: service ssh restart

关于Ansible 服务重启失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30162528/

相关文章:

ansible - 如何使用 Ansible 重新加载 Firewalld 服务?

variables - Ansible 组变量优先级

python - 自动 Ansible 文档如何工作?

amazon-ec2 - 删除包 ansible 剧本

docker容器无法使用 `service sshd restart`

docker - 如何在 Alpine 上的 OpenSSH 中调试无效的无密码 RSA 证书?

hadoop - 如何永久更改 sshd_config 文件?

kubernetes - RBAC:具有多个命名空间的角色

ansible - 如何从 Ansible 中的指定组中删除用户?

ansible - 在 Ansible list 中动态构建字符串