问题标签 [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.
ubuntu - 在 Ansible 中注册变量
嗨,我是 Ansible 的新手,我在使用注册变量时遇到了一些问题。
问题是我有多个具有不同操作系统的服务器。
我使用角色来分隔它们,但是在没有一种服务器的情况下,条件会给我一个错误,说我必须放置一个计算结果为 True 或 False 的表达式。
这是有问题的代码。
给我的错误是这个:
我已经尝试过这些: when: sources.stdout is defined and source.stdout == a only_if: sources.stdout is defined and source.stdout == a
这给了我同样的错误。
我在 Ubuntu 13.04 中使用 Ansible 1.3 为了检查这一点,我使用了 ansible --version
希望您能够帮助我。问候
python - 如何在不指定库存但直接指定主机的情况下运行 Ansible?
我想在 Python 中运行 Ansible 而不通过 (ANSIBLE_HOST) 指定库存文件,但只需:
我实际上可以很容易地在织物中做到这一点,但只是想知道如何在 Python 中做到这一点。另一方面,Ansible API for python 的文档并不完整。
ansible - ansible 角色不运行主要剧本
网站.yml
./test/tasks/main.yml
任何帮助表示赞赏
ansible - How does the copy module understand where to check for src and dest directories?
This might not be a valid question. I was going through source of copy module at github. While I could understand what and how it is doing one thing I am not able to get. I see following two lines
and
While I get that these lines are checking the presence of source and dest directories, how does python knows where to look these on as they are on different machines (the ansible server and host). How does python differentiates them and looks for them on their repective machines?
Can someone please help?
windows - Ansible windows 客户端或带有 Ansible linux 服务器的主机?可能的?
我正在Ansible
为我的项目使用一些基础设施管理问题。我使用 Linux 客户端完成了这项任务,比如从 Ansible 服务器复制 bin 文件并将其安装在客户端计算机上。这涉及到我的剧本中使用普通 Linux 命令(如 ssh、scp、./bin 等)的任务,
现在我想在 Windows 客户端中实现相同的目标。我找不到任何好的文档来尝试一下。如果你们中的任何人尝试过将 Ansible 与 Windows 客户端一起使用,那么如果您可以分享程序或原型或任何信息来开始并进一步解决我的问题,那就太好了。
python - 尝试创建 python web 应用程序时出现 Vagrant 错误
我正在阅读使用 Vagrant 和 Ansbile ( https://github.com/nickhs/flask_skeleton ) 部署 Flask 应用程序的指南,但一直遇到我不知道如何修复的错误。
我运行以下... $ vagrant up db
...在我找不到任何答案的错误之前经历了相当多的步骤。
这些是完成的步骤...
[db] 运行配置器:ansible...
谁能指出我正确的方向?
configuration-management - Ansible:特定角色和库存的变量是否可能?
假设我有一个从模板创建的 nginx 配置文件,我用它来配置某些主机以将服务器名称从 http 重定向到 https:
假设我在同一台机器上托管了两个网站:
- 站点 A
- 站点 B
每个都有自己的服务器名称,每个都需要上面的重定向。同时假设我至少有两个单独的部署配置,每个配置都由其自己的清单文件及其 group_vars/ 文件夹表示,例如:
- 流浪的单盒
- 生产
每个使用不同的服务器名称。所以现在我有 2*2 = 4 个单独的服务器名称:
- sitea.myonebox.com
- siteb.myonebox.com
- sitea.production.com
- siteb.production.com
我不知道如何定义所有这 4 个变量。我不能在 group_vars/ 下定义两个单独的变量,因为 j2 模板只需要一个变量名 {{server_name}},所以我必须定义相同的模板两次才能使其工作。
另一种选择是将sitea和siteb作为两个单独的角色(无论如何我都会这样做),并将sever_name存储在roles/sitea/vars/main.yml中,但是该设置不考虑库存,这意味着我会减少到 2 个变量而不是 4 个。
如果没有模板重复,这是否可能,或者 Ansible 还不支持这种场景?
python - 如何以编程方式和同时驱动 Ansible?
我想使用 Ansible 在多个远程节点上同时执行一个简单的作业。实际的工作涉及 grepping 一些日志文件,然后在我的本地主机上对结果进行后处理(远程节点上没有可用的软件)。
命令行 ansible 工具似乎不太适合这个用例,因为它们将 ansible 生成的格式与远程执行命令的输出混合在一起。Python API 似乎应该能够做到这一点,因为它公开了未修改的输出(除了一些在此处不相关的潜在 unicode 修改)。
我想出的 Python 程序的简化版本如下所示:
在这里,sleep 10
代表实际的日志 grepping 命令——这个想法只是模拟一个不会立即完成的命令。
但是,在运行此程序时,我观察到所花费的时间似乎与我的清单中的主机数量成正比。以下是分别针对 2、5 和 9 台主机的清单的计时结果:
其他一些随机观察:
ansible all --forks=10 -i five-hosts.inventory -m command -a "sleep 10"
表现出相同的行为ansible all -c local --forks=10 -i five-hosts.inventory -m command -a "sleep 10"
似乎是同时执行的事情(但只适用于本地连接,当然)ansible all -c paramiko --forks=10 -i five-hosts.inventory -m command -a "sleep 10"
似乎同时执行的事情
也许这表明问题出在 ssh 传输上,与通过 Python API 而非命令行使用 ansible 无关。
无论我的清单中的主机数量如何,这有什么问题会阻止默认传输仅花费大约 10 秒?
jinja2 - 如何格式化 Ansible 值中的变量
鉴于 Ansible 通过 Jinja2 处理所有变量,并且可以执行以下操作:
正确地将字符串插入为:
为什么这不起作用:
这显然会导致某种解析问题,导致我们想要的字符串变得冗长:
请注意,在上面的示例item
中是一个字符串,因为默认格式with_sequence
是%d
,并且format()
不会将值item
转换为字符串插值所需的格式%02d
,因此需要使用 进行转换int()
。
这是一个错误还是我错过了什么?
php - 如何指定 Ansible PHP 版本?
如何指定 Ansible 加载的 PHP 版本?注意:Ansible 是用于管理服务器构建的软件,您可以指定如何设置服务器的方法,然后可以在几分钟内启动新服务器。我正在专门寻找如何使用“Ansible”来做到这一点。