问题标签 [ansible]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ansible - 将 Ansible 剧本安全地限制在单台机器上?
我正在使用 Ansible 执行一些简单的用户管理任务,其中包含一小部分计算机。目前,我的剧本设置为hosts: all
,我的主机文件只是一个包含所有机器的组:
我发现自己经常不得不针对一台机器。该ansible-playbook
命令可以像这样限制播放:
但这似乎有点脆弱,尤其是对于具有潜在破坏性的剧本而言。省略limit
标志意味着剧本将在任何地方运行。由于这些工具只是偶尔使用,因此似乎值得采取措施进行万无一失的播放,这样我们就不会在几个月后意外地破坏某些东西。
是否有将剧本运行限制在单台机器上的最佳实践?理想情况下,如果遗漏了一些重要的细节,剧本应该是无害的。
php - 通过 Ansible 安装 phpunit
我正在尝试通过 ansible 安装 phpunit,以便在 vagrant vm 上运行它,但是我在构建过程中不断收到错误消息:
通道“pear.phpunit.de”未初始化,使用“pear channel-discover pear.phpunit.de”初始化或pear config-set auto_discover 1未知通道“pear.phpunit.de/PHPUnit”中的“pear.phpunit.de” " 无效的包名/包文件 "pear.phpunit.de/PHPUnit" 安装失败
ansbile 配置看起来像:
有没有人设法通过ansible成功安装phpunit?
ansible - ansible:如何在通知中使用 with_items 中的变量 ${item}?
我是 Ansible 的新手,我正在尝试创建几个虚拟环境(每个项目一个,项目列表在变量中定义)。
该任务运行良好,我得到了所有文件夹,但是处理程序不起作用,它没有使用虚拟环境初始化每个文件夹。处理程序中的 ${item} 变量不起作用。使用 with_items 时如何使用处理程序?
ubuntu - 运行 ansible-playbook 时出错
我已经在 Ubuntu Precise 64 上安装了 Ansible 1.2.3。
运行ansible-playbook -i ansible_hosts playbook.yml
给我这个错误:
以下是 的内容ansible_hosts
:
和playbook.yml
:
我怎样才能使这项工作?
ansible - Ansible 无限期暂停
我正在尝试运行 ansible 剧本,在收集事实后,Ansible 会暂停第一个任务,这应该花费不到一秒的时间并且不会继续。我可以检查哪些内容?我试过了:
- 详细模式(-vvv)..但我没有看到太多有用的信息
- 确保连接工作(ansible all -m ping 工作)
- 运行各种命令(使用-t)..虽然它们都暂停了
- 将命令更改为仅 echo 'hello' .. ansible 仍然暂停
list - 如何在ansible库存文件中将列表值指定为变量?
我需要类似(ansible库存文件)的东西:
但是,ansible 不会将“语言环境”识别为列表。
python - 在开发过程中拥有 Ansible pip 更新 python 包
我一直在编写一些 Ansible 脚本来设置 python virtualenv,并在开发过程中更新 python 包并重新启动服务器。尽管让 pip 更新软件包,但我遇到了问题。我真的不在乎这是如何完成的,但我更喜欢在开发过程中将路径添加到 virtualenv 中的 python 路径,然后重新启动服务器,但我还没有弄清楚如何在 Ansible 中做到这一点。
所以我的问题是如何设置一个本地 git 存储库,该存储库可以安装到 virtualenv 的站点包中,也可以设置 Ansible 到 sys.path.insert 使用正确的 virtualenv 存储库的位置。
目前我正在尝试做:
在安装软件包之前,我将我从 Authenticator 中获得的一个类重命名为像 Authen 这样完全错误的东西。该类在全新安装期间显示 Authen。然后我将类名改回正确的名称(Authenticator),修改版本并运行
但是在检查站点包中的实际文件后,它仍然显示 Authen 名称而不是更新的文件。
我怎样才能做到这一点,以便在开发期间使用本地存储库并在我的环境中获取即时更新的文件?以及通过 Ansible 使其成为可重复的过程。
这是我在 Ansible 中尝试做的事情。我的第一个游戏是设置我只想运行一次的环境。
${python_root} 只是我的 python 项目的位置,当然工作目录是新的 virtualenv 设置。
然后不知何故,我想要一个开发游戏来更新 virtualenv 中的 python 存储库。这是我到目前为止所拥有的,但这也不起作用。
amazon-web-services - ansible ec2_group 模块无法创建新的安全组
我最近开始学习 ansible,所以这听起来像是一个菜鸟问题。我写了一个简单的剧本(example.yml),它将使用 ansible 的 ec2_group 模块在 AWS ec2 中创建一个安全组。
剧本是——
当我做
现在,当我列出安全组时
有人可以告诉我应该做些什么来解决这个问题。
command-line - 使用 Ansible 显示远程命令的输出
在 Ansible 角色中,我生成用户的 SSH 密钥。之后,我想将其打印到屏幕上并暂停,以便用户可以将其复制并粘贴到其他地方。到目前为止,我有这样的事情:
“显示 SSH 公钥”任务完成但不显示输出。
可能有更好的方法来解决这个问题。我真的不喜欢它总是显示“改变”状态的事实。我确实找到了这个 ansible 的拉取请求 - https://github.com/ansible/ansible/pull/2673 - 但不确定我是否可以在不编写自己的模块的情况下使用它。
logging - 如何获取 ansible-playbook 模块执行的日志/详细信息?
假设我执行以下操作。
我确信它是成功的。
我在哪里/如何看到我的脚本在远程主机 (MyTestHost) 上回显/打印的“Hello World”?还是脚本的返回/退出代码?
我的研究表明,可以编写一个插件来拦截模块执行回调或这些行上的某些内容并编写一个日志文件。我宁愿不要浪费我的时间。
例如下面的标准输出(注意我正在运行 ansible 而不是 ansible-playbook):