我们需要在156台计算机上安装LDAP客户端。因此,我们想使用ansible完成此任务。
apt-get install ldap-utils libpam-ldapd libnss-ldapd nscd
但是,当我们安装它时,它在响应(弹出框)中提出了很多问题,我们面临的问题是如何在剧本中处理这些响应。
我使用过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"
有人可以在上述问题上帮助我吗?
任何帮助或指导都将适用。
谢谢。
答案 0 :(得分:0)
这个公认的答案可能会有所帮助:How to do an initial setup of slapd OLC with ldapmodify
它使用slapd和Heredoc定义要使用的debconf-set-selection的答案。
答案 1 :(得分:-1)
我不确定如何使用ansible来做到这一点,但是由于您已经在使用Expect自动执行脚本响应,因此可以使用诸如autohotkeys或sikuli之类的内容来回答弹出窗口。您可能会使用ansible运行您的期望脚本来回答脚本化的响应,并运行autohotkeys脚本来回答弹出窗口。或者,也许您可以只修改正在运行的安装脚本,以免弹出窗口。
您可以看到更多信息:
https://github.com/sikuli/sikuli https://www.autohotkey.com/docs/Hotkeys.htm