使用ansible安装LDAP客户端
我们需要在156台机器上安装LDAP客户端。所以我们想用ansible来完成这个任务使用ansible安装LDAP客户端,ansible,ldap,Ansible,Ldap,我们需要在156台机器上安装LDAP客户端。所以我们想用ansible来完成这个任务 apt-get install ldap-utils libpam-ldapd libnss-ldapd nscd 但当我们安装它时,在响应(弹出框)中询问了很多问题,我们面临着如何在playbook中处理这些响应的问题 我使用了expect模块,但当我们在屏幕上看到问题/回答而不是弹出框时,它运行良好,如下所示: - name: run command to install rubyencoder
apt-get install ldap-utils libpam-ldapd libnss-ldapd nscd
但当我们安装它时,在响应(弹出框)中询问了很多问题,我们面临着如何在playbook中处理这些响应的问题
我使用了expect
模块,但当我们在屏幕上看到问题/回答而不是弹出框时,它运行良好,如下所示:
- name: run command to install rubyencoder
expect:
chdir: /home/ubuntu/rubyencoder-evaluation/bin
command: /home/ubuntu/rubyencoder-evaluation/bin/rubyencoder
responses:
'.*Press return key to continue.*': ""
'.*type \"I AGREE\".*': "I AGREE"
'.*Your RubyEncoder profile e-mail.*': "abc@xyz.com"
'.*Your RubyEncoder profile password.*': ""
上面的配置正确地处理响应,但相同的方法在ldap客户端安装中不起作用
我正在使用下面的剧本:
---
- hosts: test1
become: true
# remote_user: dagar
# sudo: yes
tasks:
- name: install ldap client packages
expect:
command: apt-get install ldap-utils libpam-ldapd libnss-ldapd nscd
responses:
'.*Do you want to continue?.*': ""
'.*LDAP server URI.*': "Ok"
'.*LDAP server search base.*': "Ok"
'.*Name servives to configure.*': "Ok"
'.*Restart services during package upgrades without asking?.*': "No"
'.*Services to restart to make them use the new libraries.*': "Ok"
有人能帮我解决上述问题吗
任何帮助或指导都将受到感谢
谢谢。我不知道如何仅使用ansible来实现这一点,但由于您已经在使用expect来自动执行脚本响应,因此可以使用自动热键或sikuli之类的工具来回答弹出窗口。您可以让ansible运行expect脚本来回答脚本化的响应,并运行autohotkeys脚本来回答弹出窗口。或者,您可以修改为安装运行的任何脚本,以避免弹出窗口 您可以查看更多信息:
这个公认的答案可能有助于:
它使用slapd和herdoc来定义要使用的debconf集合选择的答案。在这种情况下,“不工作”是什么意思?挂起来了?它提供了错误的输入?它会重新启动你的电脑吗?您未能包含一部分日志输出,这些日志输出可能有助于任何人帮助您不使用shell触发
apt-get
命令。使用(默认情况下为非交互式)。在以交互方式安装时,您回答的问题基本上是默认情况下创建配置文件或启用服务。只要确保你在你的剧本中做了同样的事情,按a键和/或正确启用服务(例如使用)@mdaniel:我似乎很清楚什么是“不工作”的意思。他不知道如何自动回答问题。