Ansible面试问题与答案
通过默罕默德2018年5月18日下午5点37分48分
问题1。什么是可解释的?
答:Ansible是一个软件工具,可以使用ssh部署应用程序,而无需sny停机。它还用于管理和配置软件应用程序。Ansible是用Python语言开发的。
问题2。什么是易变星系?
答:Galaxy指的是网站和CLI工具,用于与网站进行交互,在这里你可以下载并与ansible社区的其他成员分享角色。
第三季。Ansible的Forks是什么
答:Forks是一种提高ansible性能的方法,它定义了将创建多少ansible进程来与远程主机通信。
第四季度。简要解释Ansible中的流水线。
答:管道化允许Ansible通过单个连接使用流命令,而不是为每个Ansible命令打开连接。
Q5。我们如何使用控制持久化来加速可部署部署?
答:这允许我们创建一个主连接,在给定的时间内可以重用它。
Q6。在ansible中解释“火与忘”的概念。
答:这允许我们在不等待任务完成的情况下运行任务。您只需运行任务Async并设置poll=0。在剧本的后面,使用async_status检查作业的状态。
迄今为止。我们如何使一个变量对一个主机或组可用,而不包括在库存文件中?
答:您可以在group_vars下创建一个变量文件。例如,我们想让一个变量也可用网络服务器主机组,简单创建组变量/Web服务器并在文件中定义变量。
处置。Ansible有什么用?
答:Ansible可以在IT基础架构中用于管理软件应用程序并将其部署到远程节点。例如,假设您需要通过一个命令将一个软件或多个软件部署到100个节点上,在ansible的帮助下,您可以通过一个命令将尽可能多的应用程序部署到多个节点上,但您必须具备一点编程知识才能理解ansible脚本。
我们已经编译了一系列关于Ansible的文章,标题为“准备使用Ansible IT自动化工具部署您的IT基础设施”,贯穿第1-4部分,涵盖了以下主题。
九方。为什么要禁用ansible facts。
答:如果事实不是用来存储在事实/期间创建的变量的内存,你可以禁用事实
问题10。什么是可行的策略?
答:Ansible策略是修改Ansible工作方式的插件。例如,线性策略在主机上连续执行任务,等待所有主机完成后再执行下一个任务,而在某个主机上完成执行后,则继续执行下一个任务。对于调试策略,它线性执行,但在失败时触发调试器。
问题11:如何为任务或整个剧本设置PATH或任何其他环境变量?
答:属性可以设置环境变量环境关键词。它可用于任务或游戏级别:
环境:
路径:": /页面/ bin”
一些:价值
注意:从2.0.1开始,来自gather_facts的setup任务也继承了来自play的environment指令,您可能需要使用|违约过滤器,以避免错误,如果设置这在游戏级别。
问题12。如何提交对文档的更改?
Ansible的文档保存在主项目git仓库中,完整的贡献说明可以在文档中找到.
问题。什么时候使用?还有,如何插入变量或动态变量名?
答:一个固定的原则是“除非在什么时候使用:”。条件语句总是通过Jinja2来解析表达式,所以当:failed_when:和changed_when:总是被模板化,你应该避免添加。
在大多数其他情况下,您应该始终使用括号,即使以前您可以使用变量而不指定(如使用u子句),因为这很难区分未定义的变量和字符串。
另一条规则是“胡子不叠”。我们经常看到:
}}
以上方法不起作用,如果你需要使用动态变量,请使用hostvars或vars字典:
Q14。我如何处理不同的机器需要不同的用户帐户或端口来登录?
答:在库存文件中设置库存变量是最简单的方法。
Ansible 2.0已弃用“ssh”fromansible_ssh_user
,ansible_ssh_host
和ansible_ssh_端口
成为ansible_user
,ansible_host
和ansible_港
.
如果您使用的是Ansible 2.0之前的版本,则应继续使用较旧的样式变量(ansible_ssh_ *
).在旧版本的Ansible中,这些较短的变量被忽略,没有警告。
例如,假设这些主机有不同的用户名和端口:
(网路)
asdf.example.com可转换_端口=5000 ansible_user =爱丽丝
jkl.example.com ansible_port=5001 ansible_user =鲍勃
如果需要,还可以指定要使用的连接类型:
(testcluster)
localhost ansible_connection=地方的
/路径/ / chroot1 ansible_connection=chroot
foo.example.com ansible_connection=帕拉米科
您可能还希望将它们保存在组变量中,或者将它们归档到group_vars/
最喜欢。如何安装Ansible ?
答:获得Ansible用于Ubuntu的最好方法是将项目的PPA(个人包归档)添加到你的系统中。
为了有效地做到这一点,我们需要安装软件-属性-通用包,它将使我们能够轻松地使用ppa。(在旧版本的Ubuntu中,这个包被称为python-software-properties。)
- 更新源
- sudo apt获取安装软件属性公共
安装包后,我们可以通过键入以下命令添加Ansible PPA
sudo apt-add-repository ppa: ansible / ansible
按ENTER接受PPA添加。
接下来,我们需要刷新系统的包索引,以便它知道PPA中可用的包。然后,我们可以安装软件:
- 更新源
- 安装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加密敏感数据。