处理程序的YAML文件如下所示: Yaml文件的位置如下
ansible_patching/ssm_agent.yml
---
- hosts: all
gather_facts: true
become: true
roles:
- ssm_agentroles/ssm_agent/handlers/main.yml
# handlers file for ansible-role-ssm-agent
- name: systemctl_handler
systemd:
name: amazon-ssm-agent
daemon_reload: yes
state: "{{ ssm_agent_svc_state }}"
enabled: yesansible_patching/roles/ssm_agent/tasks/main.yml
---
- 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 }}"我得到的错误如下
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)重新启动服务
请查阅以下产出:
[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代理安装角色)确实工作得很好
如有任何指导,将不胜感激。
[ansible@ip-172-31-38-88 ~]$ sudo systemctl daemon-reload
[ansible@ip-172-31-38-88 ~]$ echo $?
0编辑2:使用sudo命令在远程主机上工作良好
[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用户相同的权限。
发布于 2020-06-25 07:58:51
从您问题中的详细信息中可以看出,您正在使用ansible用户登录远程计算机。
为了启动-停止重新启动或重新加载系统服务,您的ansible用户必须拥有管理权限,即sudo权限。
从systemctl daemon-reload的输出中我们可以清楚地看到,您没有所需的权限。所以,为了让它发挥作用,
ansible用户授予sudo权限
在Ubuntu中,(使用root用户或sudo):# usermod -aG sudo ansible
在CentOS中(与根用户或sudo一起):# usermod -aG wheel ansible
become: true,---
- name: My playbook
hosts: localhost
become: true
become_user: root
become_method: sudo
tasks:仅此而已!
https://stackoverflow.com/questions/62566871
复制相似问题