问题标签 [ansible-tower]

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.

0 投票
1 回答
433 浏览

ansible - AWX 无法从私人仓库安装要求

我有一个项目的 AWX 安装。该项目是从私人 git 存储库中完美获取的。

该项目有一个由 AWX 执行的需求文件。需求文件包含这样的私有存储库:

但是,这失败并出现以下错误:

测试未成功安装:-命令 git clone 在目录中失败。

如何配置 AWX 以使用 awx 中已有的 git 凭据?

0 投票
1 回答
2356 浏览

ansible - Ansible Tower:如何将工作编号传递到剧本中?

我编写了一个 Ansible 剧本,它需要运行它的作业编号作为其参数之一,以便我将对作业的引用添加到我维护的数据库中。如何让 Tower 模板将其传递给剧本?

这是我目前不理想的解决方案:

我首先使用包含我的剧本的模板开始使用tower-cli,此时作业号返回给我。然后,我将作业编号作为参数传递给另一个模板,该模板调用将作业编号写入数据库的剧本。

理想情况下,我希望能够通过运行单个剧本,tower-cli而不必担心这样做时的作业编号。我希望 Tower 将工作编号传递给原始剧本,以免需要第二份剧本。对此问题的任何其他解决方案也将不胜感激。

0 投票
1 回答
621 浏览

ansible - 如何使用 tower-cli 安排工作

我有一个 ansible-tower 模板,我想在未来的特定时间运行它。为此,我相信我应该运行tower-cli schedule create然后将一些参数传递给程序,但是我不知道如何传递日期/时间参数。

我看过这个文档,但它似乎没有包含这样的参数。如何做到这一点?

0 投票
1 回答
1950 浏览

ansible - 如何在 URI 模块 GET 注册循环输出中检索值?

我正在通过 Ansible Tower API 搜索作业模板,并希望从存储在注册结果 json 条目中的返回的“名称”和“id”字段中创建键/值对的字典 (?)。

这将搜索作业模板并返回以下输出 - 我删除了一堆不需要进行故障排除的输出;

我尝试使用几种不同的方法从结果中提取名称和 ID,所有这些方法都与此类似。

除此之外,我尝试使用此处提供的解决方案映射属性但没有成功:Ansible loop over JSON output from URI Call

我相信我缺少关于 Ansible 如何处理像这样定义的注册变量的一些基本知识。令人沮丧的是,如果我只是对所有作业模板、用户、组织等执行 GET,则此代码对循环项 ( get_job_templates.json.results ) 稍作更改即可生成 name:id 键/值对,但布局在搜索特定的模板列表(可能还有其他对象)时,注册的变量略有不同。干杯!

编辑:发布此内容后,我尝试了其他适用于单个工作模板搜索的方法,但由于某种原因不能搜索多个。

此代码返回预期的输出,然后可以在以后的代码中使用将返回模板 ID 的模板名称调用作业模板。

如果我在初始任务中添加要搜索的模板列表,它将停止工作,在上述代码中的第二个 set_fact 设置 fact 时返回以下错误。

虽然我想进步就是进步!

0 投票
0 回答
108 浏览

ansible-tower - Ansible 塔作业在几秒钟内失败

"msg": "以下模块执行失败: setup\n setup: 执行模块时出现未处理的异常: 请求的对象不存在。Playbook 运行耗时 0 天 0 小时 0 分钟 1 秒

0 投票
0 回答
278 浏览

ansible - Ansible Tower 3.5 和自定义 python 模块

当我尝试将自定义 python 模块导入另一个模块时,它不再适用于 Tower 3.5。这个确切的设置适用于 2.7.1,Ansible 的当前版本是 2.7.10。

我在剧本中使用的自定义模块位于库目录中,我导入的模块位于主目录中。例如:

我已经读过设置 ANSIBLE_LIBRARY 环境变量会告诉 ansible 在哪里可以找到模块。我尝试设置这个 ANSIBLE_LIBRARY:“./”,还有“{{ playbook_dir }}”,但这没有帮助。这个项目是从回购同步的,我没有自定义模块的固定路径......

在 main.py 中,如果我尝试导入示例,我曾经能够做到这一点:

这是错误消息: ImportError: No module named example

附加信息,这是我想出的解决方法(MOD_PATH 是 '{{playbook_dir}}'):

0 投票
1 回答
588 浏览

curl - curl命令从ansible Tower获取库存ID

我需要使用 curl 命令从 ansible tower 检索给定项目的 inventory_id(project_dev 是项目名称)

0 投票
1 回答
354 浏览

ansible - 如何通过脚本在 ansible Tower 中创建库存后立即进行库存同步(以自动化方式)

我想了解如何在使用计划创建库存后立即进行库存同步(如下所示):

tower-cli schedule create --name sync_schedule --inventory-source 182 --rrule "DTSTART:20190507T183000Z RRULE:FREQ=DAILY;INTERVAL=1;COUNT=1"

想弄清楚规则在创建后立即同步一次。

0 投票
1 回答
1320 浏览

ansible - 将变量传递给 AWX 或 Ansible Tower 中的连续播放

我正在尝试使用当前日期和时间将变量传递给剧本。目标是在所有受影响的主机上创建一个 DIR 以进行部署,包括当前日期和时间以及秒。主机数量为 12,我使用 playbook 中的“serial: 2”选项仅在 2 台主机上同时运行作业,因此我需要 6 次运行才能完成整个作业。我在 AWX 的模板属性页面上使用 Extra Variables 字段来传递变量 - datetime: '{{ansible_date_time}}',但是这个变量的值随着每次连续播放而变化,因此创建的 DIR 在不同的主机上具有不同的名称。

现在我在 Roles 的 main.yml 中使用以下代码进行调试:

我得到了什么:

...

我也尝试过:

  • 在剧本 YML 文件中赋值

  • 在“AWX-Settings-Jobs-Extra environment variables”中赋值,然后通过lookup('env','datetime')访问

所以,我确信存在正确的方法,但是在谷歌搜索和尝试几天后,我仍然找不到它。有人有什么建议吗?提前致谢。

添加

用 Pre-tasks 尝试了 Pouyan 的想法,工作方式相同。

主要.yml:

结果:

0 投票
2 回答
3900 浏览

ansible - 如何在 Ansible Tower 中为单个作业模板使用多个凭据?

我需要为 Ansible Tower Job-Template 中的单个剧本使用两个不同的凭据。在剧本中,我包括两个角色(一个用于 Windows 机器,一个用于 Linux 机器)。在配置作业模板时,我注意到我无法选择两个机器凭据,因此剧本失败。

我在这里找到了一个解决方案https://stackoverflow.com/a/55870311/4715624,其中包括在文件夹下创建两个 Ansible 保险库(具有相同的保险库密码)host_vars并将密码保存在那里。此解决方案可从命令行工作,例如 ansible-playbook -v test-multi-credential-playbook-in-ansible-tower.yml --ask-vault-pass

然后,我在 Ansible Tower 中创建了一个保管库类型凭据,并尝试使用该凭据运行相应的作业。但这不起作用(身份验证问题)。有人可以告诉我在 Ansible Tower 中为单个剧本使用多个凭据的正确方法吗?或者在 Ansible Tower 中根本不可能?

更新:我的剧本如下所示: