Pro*_*ton 4 ansible ansible-awx
我正在使用Ansible AWX发出重新启动命令以重新启动主机上的 apache2 服务。该restart命令包含在剧本中。
---
- name: Manage Linux Services
hosts: all
tasks:
- name: Restart a linux service
command: systemctl restart '{{ service_name }}'
register: result
ignore_errors: yes
- name: Show result of task
debug:
var: result
Run Code Online (Sandbox Code Playgroud)
或者
---
- name: Manage Linux Services
hosts: all
tasks:
- name: Restart a linux service
ansible.builtin.service:
name: '{{ service_name }}'
state: restarted
register: result
ignore_errors: yes
- name: Show result of task
debug:
var: result
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该命令时,出现以下错误:
"Failed to restart apache2.service: Connection timed out",
"See system logs and 'systemctl status apache2.service' for details."
Run Code Online (Sandbox Code Playgroud)
我试图找出这个问题,但还没有运气。
Pro*_*ton 13
后来我想到了问题的原因。
这是我修复它的方法:
重新启动命令需要sudo访问权限才能运行,而我的命令中缺少该权限。
我所要做的就是添加命令,become: true以便我可以使用 root 权限执行该命令。
所以我的剧本此后看起来像这样:
---
- name: Manage Linux Services
hosts: all
tasks:
- name: Restart a linux service
command: systemctl restart '{{ service_name }}'
become: true
register: result
ignore_errors: yes
- name: Show result of task
debug:
var: result
Run Code Online (Sandbox Code Playgroud)
或者
---
- name: Manage Linux Services
hosts: all
tasks:
- name: Restart a linux service
ansible.builtin.service:
name: '{{ service_name }}'
state: restarted
become: true
register: result
ignore_errors: yes
- name: Show result of task
debug:
var: result
Run Code Online (Sandbox Code Playgroud)
如果您想在Ansible AWX上实现此目的,另一种方法是勾选作业模板中的权限升级选项。
如果启用,则会以管理员身份运行作业模板中选定的 playbook。
就这样。
我希望这有帮助
| 归档时间: |
|
| 查看次数: |
4821 次 |
| 最近记录: |