首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当出现错误的daemon_reload=yes在守护进程重新加载时出现错误1:执行操作失败:连接超时

当出现错误的daemon_reload=yes在守护进程重新加载时出现错误1:执行操作失败:连接超时
EN

Stack Overflow用户
提问于 2020-06-25 02:18:26
回答 1查看 5K关注 0票数 4

处理程序的YAML文件如下所示: Yaml文件的位置如下

ansible_patching/ssm_agent.yml

代码语言:javascript
复制
---
- hosts: all
  gather_facts: true
  become: true

  roles:
  - ssm_agent

roles/ssm_agent/handlers/main.yml

代码语言:javascript
复制
# handlers file for ansible-role-ssm-agent
- name: systemctl_handler
  systemd:
    name: amazon-ssm-agent
    daemon_reload: yes
    state: "{{ ssm_agent_svc_state }}"
    enabled: yes

ansible_patching/roles/ssm_agent/tasks/main.yml

代码语言:javascript
复制
---
- name: Check required input parameters
  assert:
    that:
      - ({{ item }} is defined)
      - ({{ item }} is not none)
      - ({{ item }} | trim != '')
  with_items:
    - os_name
    - os_version
  loop_control:
          loop_var: item
- name: Include architecture specific
  include: "{{ ansible_architecture }}.yml"

- name: Include for centos 7
  include: install_{{ os_name }}_{{ os_version }}.yml
  when: ansible_distribution == "{{ os_name }}" and ansible_distribution_major_version == "{{ os_version }}"

我得到的错误如下

代码语言:javascript
复制
RUNNING HANDLER [ansible_role_ssm_agent : systemctl_handler] ********************************************************
fatal: [13.236.87.146]: FAILED! => {"changed": false, "msg": "failure 1 during daemon-reload: Failed to execute operation: Connection timed out\n"}

但是,我可以在远程CentOS主机的远程主机公共IP上使用相同的远程用户(Ansible)重新启动服务

请查阅以下产出:

代码语言:javascript
复制
[ansible@ip-172-31-33-3 tmp]$ sudo systemctl status amazon-ssm-agent
[sudo] password for ansible:
● amazon-ssm-agent.service - amazon-ssm-agent
   Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-06-25 01:22:40 UTC; 44min ago
 Main PID: 1978 (amazon-ssm-agen)
   CGroup: /system.slice/amazon-ssm-agent.service
           └─1978 /usr/bin/amazon-ssm-agent

[ansible@ip-172-31-33-3 tmp]$ sudo systemctl restart amazon-ssm-agent
[ansible@ip-172-31-33-3 tmp]$ sudo systemctl status amazon-ssm-agent
● amazon-ssm-agent.service - amazon-ssm-agent
   Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-06-25 02:07:06 UTC; 2s ago
 Main PID: 2157 (amazon-ssm-agen)
   CGroup: /system.slice/amazon-ssm-agent.service
           └─2157 /usr/bin/amazon-ssm-agent

注释:--如果我注释 daemon_reload: yes,那么剧本(ansible ssm代理安装角色)确实工作得很好

如有任何指导,将不胜感激。

代码语言:javascript
复制
[ansible@ip-172-31-38-88 ~]$ sudo systemctl daemon-reload
[ansible@ip-172-31-38-88 ~]$ echo $?
0

编辑2:使用sudo命令在远程主机上工作良好

代码语言:javascript
复制
[ansible@ip-172-31-38-88 ~]$ sudo cat /etc/sudoers |grep ansible
[sudo] password for ansible:
ansible ALL=(ALL)       ALL
[ansible@ip-172-31-38-88 ~]$

编辑4: Remote ansible用户具有与root用户相同的权限。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 07:58:51

从您问题中的详细信息中可以看出,您正在使用ansible用户登录远程计算机。

为了启动-停止重新启动或重新加载系统服务,您的ansible用户必须拥有管理权限,即sudo权限。

systemctl daemon-reload的输出中我们可以清楚地看到,您没有所需的权限。所以,为了让它发挥作用,

  1. 您需要为ansible用户

授予sudo权限

在Ubuntu中,(使用root用户或sudo):# usermod -aG sudo ansible

在CentOS中(与根用户或sudo一起):# usermod -aG wheel ansible

  1. 你需要在你的剧本中设置become: true

代码语言:javascript
复制
---
- name: My playbook
  hosts: localhost
  become: true
  become_user: root
  become_method: sudo

  tasks:

仅此而已!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62566871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档