Ansible面试问题与答案
通过默罕默德2018年5月18日下午5点37分48分
Q1。什么是Ansible ?
答:Ansible是一个软件工具,可以使用ssh部署应用程序,而无需sny停机。它还用于管理和配置软件应用程序。Ansible是用Python语言开发的。
Q2。Ansible星系是什么?
答:Galaxy指的是网站和CLI工具,用于与网站进行交互,在这里你可以下载并与ansible社区的其他成员分享角色。
第三季。Ansible的Forks是什么
答:fork是一种提高ansible性能的方法,它定义了将创建多少个ansible进程来与远程主机通信。
第四季度。简要解释Ansible中的流水线。
答:管道允许Ansible在单个连接上使用流命令,而不是为每个Ansible命令打开连接。
Q5。我们如何使用控制持久化来加速可部署部署?
答:这允许我们创建一个主连接,在给定的时间内可以重用它。
Q6。在ansible中解释“火与忘”的概念。
答:这允许我们在不等待任务完成的情况下运行任务。您只需运行任务Async并设置poll=0。在剧本的后面,使用async_status检查作业的状态。
迄今为止。我们如何使一个变量对一个主机或组可用,而不包括在库存文件中?
答:您可以在group_vars下创建一个变量文件。例如,我们想让一个变量也可用网络服务器主机组,简单创建group_vars /网路并在文件中定义变量。
处置。Ansible有什么用?
答:Ansible可用于IT基础设施,以管理和部署软件应用到远程节点。例如,假设您需要部署一个软件或多个软件100的节点通过一个命令,这里ansible进入画面,借助ansible可以多达应用程序部署到许多节点使用一个命令,但是你必须有一个编程知识对于理解ansible脚本。
我们已经编写了一个关于Ansible的系列,标题为“准备使用Ansible IT自动化工具部署您的IT基础设施”,在第1-4部分,涵盖以下主题。
九方。为什么要禁用ansible facts。
答:如果事实不是用来存储在事实/期间创建的变量的内存,你可以禁用事实
Q10。什么是ansible策略?
答:Ansible策略是修改Ansible工作方式的插件。例如,线性策略在主机上连续执行任务,等待所有主机完成后再执行下一个任务,而在某个主机上完成执行后,则继续执行下一个任务。对于调试策略,它线性执行,但在失败时触发调试器。

问题11:如何为任务或整个剧本设置PATH或任何其他环境变量?
答:属性可以设置环境变量环境关键字。它可以用于任务或游戏级别:
环境:
路径:": /页面/ bin”
一些:价值
注意:从2.0.1开始,来自gather_facts的setup任务也继承了来自play的environment指令,您可能需要使用|违约过滤器,以避免错误,如果设置这在游戏级别。
12个。如何提交文档变更?
Ansible的文档保存在主项目git仓库中,完整的贡献说明可以在文档中找到.
问题。什么时候使用?还有,如何插入变量或动态变量名?
答:一个固定的原则是“除非在什么时候使用:”。条件语句总是通过Jinja2来解析表达式,所以当:failed_when:和changed_when:总是被模板化,你应该避免添加。
在大多数其他情况下,您应该始终使用括号,即使以前您可以使用变量而不指定(如_子句),因为这使得难以区分未定义的变量和字符串。
另一条规则是“胡子不能叠起来”。我们经常看到这样的情况:
}}
以上方法不起作用,如果你需要使用动态变量,请使用hostvars或vars字典:
Q14。我如何处理不同的机器需要不同的用户帐户或端口来登录?
答:在库存文件中设置库存变量是最简单的方法。
Ansible 2.0已弃用“ssh”fromansible_ssh_user
,ansible_ssh_host
,ansible_ssh_port
成为ansible_user
,ansible_host
,ansible_port
.
如果你使用的是2.0之前的Ansible版本,你应该继续使用旧的样式变量(ansible_ssh_ *
).在旧版本的Ansible中,这些较短的变量被忽略,没有警告。
例如,假设这些主机有不同的用户名和端口:
(网路)
asdf.example.com ansible_port=5000 ansible_user =爱丽丝
jkl.example.com ansible_port=5001 ansible_user =鲍勃
如果需要,还可以指定要使用的连接类型:
(testcluster)
localhost ansible_connection=当地的
/路径/ / chroot1 ansible_connection=chroot
foo.example.com ansible_connection=paramiko
您可能还希望将它们保存在组变量中,或者将它们归档到group_vars/
最喜欢。如何安装Ansible ?
答:获得Ansible用于Ubuntu的最好方法是将项目的PPA(个人包归档)添加到你的系统中。
为了有效地做到这一点,我们需要安装软件-属性-通用包,它将使我们能够轻松地使用ppa。(在旧版本的Ubuntu中,这个包被称为python-software-properties。)
- sudo apt-get更新
- Sudo apt-get安装软件-属性-通用
安装包之后,我们可以通过输入以下命令添加Ansible PPA
sudo apt-add-repository ppa: ansible / ansible
按ENTER接受PPA添加。
接下来,我们需要刷新系统的包索引,以便它知道PPA中可用的包。然后,我们可以安装软件:
- sudo apt-get更新
- 安装ansible
- 我们现在有了通过Ansible管理服务器所需的所有软件。
杆子有着。如何为用户模块生成加密密码?
mkpasswd方法= sha - 512
答:如果这个实用程序没有安装在你的系统上(例如,你正在使用OS X),那么你仍然可以使用Python轻松地生成这些密码。首先,确保安装了Passlib密码散列库。
pip安装passlib
一旦库准备好了,SHA512密码值就可以生成,如下所示:
Python -c " from passlib。散列进口sha512_crypt;进口getpass;打印sha512_crypt.encrypt (getpass.getpass())”
使用集成的哈希过滤器生成哈希版本的密码。你不应该在playbook或host_vars中设置明文密码;相反,使用Vault加密敏感数据。