我想使用Ansible在某些远程服务器中禁用selinux。我还不知道服务器的完整列表,它会不时出现。
如果将local_action
阶段以某种方式集成到剧本中,那将是很好的 - 你会期望从自动化系统中获得这个阶段吗?我不介意每台服务器要求输入一次密码。
通过各种阅读,我了解我可以在任务中运行---
- name: Disable SELinux
hosts: all
remote_user: root
gather_facts: False
tasks:
- local_action: command ssh-copy-id {{remote_user}}@{{hostname}}
- selinux:
state: disabled
:
{{remote_user}}
然而:
{{hostname}}
和gather_facts
。False
到local_action
,因为它在ionic cordova plugin add cordova-sqlite-storage
有任何想法是否可以在Ansible剧本中使用?
答案 0 :(得分:2)
你可以试试这个:
- hosts: all
gather_facts: no
tasks:
- set_fact:
rem_user: "{{ ansible_user | default(lookup('env','USER')) }}"
rem_host: "{{ ansible_host }}"
- local_action: command ssh-copy-id {{ rem_user }}@{{ rem_host }}
- setup:
- selinux:
state: disabled
首先定义远程用户和远程主机,然后进行本地操作,然后使用setup
强制收集事实。