Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在加入linux服务器时,如何在Ansible域中使用命令模块?_Linux_Ansible_Realm - Fatal编程技术网

在加入linux服务器时,如何在Ansible域中使用命令模块?

在加入linux服务器时,如何在Ansible域中使用命令模块?,linux,ansible,realm,Linux,Ansible,Realm,我们正在尝试为linux服务器使用域集成 我试图使用命令模块在playbook中使用以下代码,但出现错误: - name: install pexpect using pip shell: /bin/bash -c "pip install pexpect" - name: Join system to AD expect: command: "{{ item }}" loop: - source /etc/os-release - realm

我们正在尝试为linux服务器使用域集成

我试图使用命令模块在playbook中使用以下代码,但出现错误:

- name: install pexpect using pip
  shell: /bin/bash -c "pip install pexpect"

- name: Join system to AD 
  expect:
    command: "{{ item }}"
    loop:
      - source /etc/os-release
      - realm join --membership-software=adcli --user=username@EXAMPLE.COM --computer-ou="OU={{ env }},OU={{ account }},OU=XXXX,OU=XXXXXX,DC=XXXXXXX,DC=XXXXXXX" --os-name="$PRETTY_NAME" --os-version="$VERSION" <DCNAME>
    responses:
        Password for *: "{{ username | b64decode }}"

谁能帮我解决这个问题。

首先感谢大家的评论

我已经用事实解决了这个问题:

- name: install pexpect using pip
  pip:
    name: pexpect

- name: Join system to AD 
  expect:
    command: /bin/bash -c "realm join --membership-software=adcli --user=username@DOMAINNAME --computer-ou="OU={{ env }},OU={{ account }},OU=xxx,OU=xxxx,DC=xxxxx,DC=xxxx" --os-name={{ ansible_distribution }} --os-version={{ ansible_distribution_version }} DCNAME"
  responses:
        Password for *: "{{ join_user_pass | b64decode }}"

1) 循环在任务中缩进错误:它是一个任务选项,而不是
expect
模块选项。2) 与您当前的问题无关,但这是一个很好的实践:不要在shell中安装python模块,请使用.Thank@Zeitounator。您能给出使用loop with expect模块的命令示例吗。。太长,读不下去了将loop放在任务末尾,与
expect
name
处于相同的缩进级别。我没有看到任何示例谈到在expect模块中使用多个命令&我们如何将loop与command&expect模块一起使用?一种简单的方法是将这些命令添加到脚本中,将脚本推送到主机,并在expect模块命令中调用该脚本。如果您想做一些更奇特的事情,请阅读,注意注释,转到文档并在那里查找expect示例。
- name: install pexpect using pip
  pip:
    name: pexpect

- name: Join system to AD 
  expect:
    command: /bin/bash -c "realm join --membership-software=adcli --user=username@DOMAINNAME --computer-ou="OU={{ env }},OU={{ account }},OU=xxx,OU=xxxx,DC=xxxxx,DC=xxxx" --os-name={{ ansible_distribution }} --os-version={{ ansible_distribution_version }} DCNAME"
  responses:
        Password for *: "{{ join_user_pass | b64decode }}"