Questions tagged «ansible»

使用此标签可解决有关开源自动化引擎Ansible的问题,该问题与将Ansible用于诸如云供应,配置管理,应用程序部署等主题有关。


5
如何在Ansible设置中测试配置和配置?
正在尝试尝试在我们的Ansible设置中建立一些弹性,以处理配置和配置。 我了解在事物的配置方面进行测试的几种方法,但是我想知道如何最好地在事物的配置方面进行测试,以及是否有任何工具可以帮助实现这种类型的实现。 目前,我们的许多测试是在剧本期间连续进行的,这对于诸如“有服务出现; vip可用;异步任务已完成”之类的事情很有用,但真正令我感到担忧的是我们管理漂移的能力。在应用程序层和供应层进行配置(例如VM配置)。我知道Ansible并不是解决配置漂移的最佳工具,但我很想知道您的意见。 如果您有什么可以使流程完全自动化的更好。(我们有一些丑陋的脚本,它们每天都会以松弛状态返回报告)。 注意:现在,在一些情况下,可能会发生重新配置(例如,从备份进行重建,严重的系统问题),但是通常情况下,它只是循环执行一些烦人的配置任务,因此不再考虑其他事情。

4
在哪里放置ansible-Vault密码
我们计划在项目中使用ansible保管库,以防止git中的密码或密钥泄漏。 想法是将所有敏感数据放入一个普通文件中,然后在推送到git之前使用密码使用ansible-vault对该文件进行加密。 要解密文件,我们必须将Vault密码传递给ansible,我正在考虑3种可能性: 将其存储在服务器环境变量中 将其作为选项传递给ansible-playbook命令 将其存储到未版本控制的文件中。 是否还有其他选择,这是存储ansible-Vault密码的最佳(和安全)方法,而ansible最佳做法文档对此没有说明。

1
Git清理/涂抹过滤器以获取可疑的Vault机密
我正在尝试在git中设置清理/涂抹过滤器,以通过ansible-vault命令对包含机密的文件进行自动加密和解密。 ansible-vault命令的特殊之处在于它不是幂等的(每次在同一数据上调用它都会创建一个不同的二进制文件)。 我从此博客页面建议的实现开始。不幸的是,它无法正常工作,因为每当调用smudge(无论是git checkout还是git status)时,秘密文件的git看起来都是经过修改的,即使不是。 所以我想知道git是否会将他在索引中的二进制文件与干净的过滤后的当前文件进行比较,因此我尝试构建如下的脚本: #!/bin/sh -x # clean filter, it is invoked with %f if [ ! -r "$HOME/.vault_password" ]; then exit 1 fi tmp=`mktemp` cat > $tmp # get the plain text from the binary in the index tmphead=`mktemp` git show HEAD:$1 > $tmphead contenthead=`echo "embedded" | …

2
我可以绕过Ansible中的主机密钥检查吗?
我正在运行一个Ansible剧本,它带有一个细微的技巧,可以在任意端口转发的端口上工作(因此,我可以使用一台机器,而不能直接访问很多机器)。 我已经完成了更改ansible_port变量的任务,因此当我开始运行实际的任务和角色时,系统会提示我在某个随机端口上接受localhost的主机密钥。 因为我很幼稚并且不关心安全性,所以我希望ssh自动接受并重定向到/dev/null(或另一个用于记录的文件)。 这可能吗?
19 ansible 


4
Ansible:其他选项可用于打开端口的telnet检查?
我是Ansible的新手。这是我的任务... 我有400多台主机,我需要验证从它们的一端到我们的Web服务器是否打开了5个不同的端口。 我可以单独登录并运行: telnet mywebserver.com 443 telnet mywebserver.com 80 telnet mywebserver.com 8443 ..等等.. 可以在Ansible中使用什么模块或插件,以便使它自动化,并让其将结果(无论是打开还是关闭的端口)报告回我的Ansible服务器?
15 ansible  testing  ports 

2
我如何一次在一台主机上运行ansible并在出现故障时中断
我有一本Ansible剧本,我想按顺序更新许多片状设备。我可以使用serial:1,但是如果出现故障,我想完全停止该剧本,这样我可以在继续之前进行修复,而不是积累错误。 我还想在停止的同一台主机上重新启动剧本。当前使用Ansible v2.0,但如果仅在较新的版本中可用,则也可以切换到较新的版本。
15 ansible 


3
使用相同的项目列表执行多个Ansible任务
我正在使用ansible剧本来为站点列表配置Apache。剧本必须将每个站点的虚拟主机配置模板复制到位,然后使用a2ensite以下命令启用每个站点: - name: Install apache site conf template: src=apache-sites-{{item}}-conf.j2 dest=/etc/apache2/sites-available/{{item}}.conf mode=0644 with_items: - sitea - siteb - sitec - sited - name: Enable site apache conf command: a2ensite {{item}} args: creates: /etc/apache2/sites-enabled/{{item}}.conf with_items: - sitea - siteb - sitec - sited 我不想为每个任务重复相同的列表。如何配置剧本以执行具有相同项目列表的两个任务?
13 ansible 

2
如何在避免将凭据存储在文件中的同时运行Ansible Azure剧本?
背景 我们使用Ansible来配置和管理Azure基础结构。目前,我们“手动”运行Ansible,即我们手动执行各种自动化任务的剧本。没有CI基础架构。 可能不相关,但我们使用动态脚本管理库存azure_rm.py。 我们鼓励我们尽可能地安全,即 不要~/.vault_pass在任何本地文件中或任何本地文件中存储保险柜密码 不要在其中存储Azure机密 ~/.azure/credentials 不要将任何安全的东西存储在中.bashrc。 在这种情况下,我很难提出一种连贯的策略来确保我的剧本可以访问Azure机密,同时遵循上述准则。 题 如何避免在文件上存储Ansible Vault和Azure凭据,同时又确保我的剧本可以访问它们? 我尝试过的 到目前为止,我已经提出了一个包装器脚本 向用户询问保险柜密码 用它来解密Vault Shell脚本 评估脚本,该脚本将Azure环境变量加载到环境中; 在已设置的环境上运行剧本。 有更好的解决方案(更优雅,更简单,更“ Ansible”)吗?

2
什么是Ansible的--vault-password-file配置?
根据ansible-playbook的帮助,可以--user=REMOTE_USER用来定义ssh用户,但是也可以ansible_ssh_user: REMOTE_USER在host-var或group_vars中进行定义。 题 需要在group-或host_vars目录中定义什么变量,以防止--vault-password-file在运行时定义该变量ansible-playbook? 尝试次数 如果ansible_vault_password_file: ~/.vault_pass.txt在配置中定义了,解密将失败: ERROR! Decryption failed on /path/to/vault 在本文档中未找到关联的保管库变量
12 ansible 

3
如何保护Ansible部署以减轻事故?
最近,Amazon S3 在us-east-1地区发生了重大故障。在Ansible或类似工具中运行维护手册时,可能是由于拼写错误引起的。您可以将shell脚本包装器包裹在ansible-playbook周围,如下所示: #!/bin/bash /usr/bin/ansible-playbook "$@" --list-hosts --list-tasks read -p "Are you sure? (y/n) " answer test "$answer" = "y" || exit 0 exec /usr/bin/ansible-playbook "$@" 但是,您还可以使用其他一些方法来提高安全性并减少出错的可能性,这会给您的公司造成严重的故障。
12 ansible  process 

1
如何在Ansible中确定性地和可重复地分配增加的端口号?
我是Ansible的新手,但我必须维护一组剧本,这些剧本与在给定环境中要设置的服务相对应。需要为它们分配端口,证书等。这将导致许多文件具有基本上总是相同名称的列表以及对它们的分配。 在许多情况下,我认为我可以轻松地将service_name用作变量,但是当映射到IP,端口或其他数字标识符时,我还没有找到一种方法来确定性地为它们分配可重复的不同编号,并且最好保留即使添加新服务也是如此。我考虑过使用SQLite数据库存储服务并从其ID中生成值,但是我不知道如何将其与Ansible集成。 我认为分配越来越多的端口号并不是什么新鲜事。这是很多系统管理员每天要做的事情,因此必须有某种方法可以做到这一点。 编辑:我们直接添加端口号等,group_vars/all.yml如下所示: ports: service1:1024 service2:1025 service3:1026 由于我们创建了其他监狱(BSD),并且清单将取决于要执行的角色,因此清单是自动生成的。
12 ansible  ports 

3
有没有办法在Ansible中并行运行with_items循环?
我正在运行Ansible 2.2,但可以帮助升级。 我看到了这个消息,并感到非常兴奋,但是在这个(或任何版本)的Ansible文档中似乎都没有。 我要解决的问题是我需要在Centos机器上管理1000个用户。 串行运行此任务需要花费相当长的时间。更令人讨厌的是,所有内容都显示为已更改,因为用户模块上的“ expires”命令始终将其标记为已更改。 这看起来也很有希望,但是在with_items循环中运行每个命令花费的时间相同,并且运行速度没有更快(我从不费心等待足够长的时间才能到达结尾)。 现在,跳过任务的速度很快(比Ansible 2.0快很多),如果我不知道如何并行进行这项工作,我想我会回过头来弄清楚如何跳过毫无意义的任务,如果有的话否则失败,我将编写自己的模块。但是似乎我应该可以在Ansible中更快地完成所有这些工作。 这是我要并行运行的, host_authorizations是用户名和其他数据的列表。 - name: Create/modify OS user accounts user: name={{ item.username }} group=sshusers shell=/bin/bash home="/home/selinux-modules/{{ item.username }}" state=present expires={{item.expiredate|default(omit)}} with_items: "{{ host_authorizations }}" tags: full_maintenance
12 ansible 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.