问题标签 [ansible-role]
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 - 当使用有限主机执行剧本时,如何在组中的所有主机上执行任务?
场景
我的清单中有一个组A
,其中A
包含a1,a2,a3
主机。这确实意味着我可以在我的剧本中写X.yml
:
问题在于 playbookX
以有限数量的主机启动,即启动ansible-playbook X
仅限于主机a1
。这个剧本X
调用角色r
(在主机上执行a1
)。我不想改变这种行为(换句话说,我想保留这个限制,请不要问为什么)。
问题
是否可以在角色中编写任务,即使剧本仅限于主机r
,它也会在组中的所有主机上执行?请记住,我的库存包含 group 。 A
a1
A
如果没有,你能建议我另一种方法吗?
我能做的是:
ansible - 在任务文件上使用 `vars_prompt`
尝试在角色内部使用vars_prompt
任务main.yml
,但出现错误:
角色“roleName”的任务/main.yml 文件必须包含任务列表
如果我将提示移至剧本main.yml
,它可以工作,但我需要能够在任务中完成。想法?
ansible - 如何在本地创建 Ansible 基本角色?
所有机器的通用合理基本配置的 Ansible 角色。应该支持 RHEL/Debian/SuSE/Solaris/HPUX/Ubuntu Linux。
基本主机配置应执行以下任务:
- ntp – 根据通用配置配置 NTP 设置
- ssh – 配置 SSH 安全、服务、密钥设置
- Package Yum / repo – 配置操作系统本机包管理器以针对内部 HPE 资源和/或外部可用资源(如 ftp.debian.org)进行操作。
我是创建 Ansible 角色的新手。还没试过,求指导。
ansible - 如何将项目作为输入参数循环到 ansible 角色
我正在尝试将现有的 ansible playbook(用于以并行方式提取多个网页 URL 的网页内容)转换为可重用的角色。我需要角色在循环中接受变量,并为我当前的剧本能够执行的单个任务中的所有项目生成输出。但是当前角色只能产生循环中最后一项的输出
我尝试在角色内外注册网页内容,但没有用。并且使用与角色相同的_items循环响应结果也会产生非200值的结果
仅供参考,我通过在角色中包含循环获得了预期的输出,但这违背了为 GET 调用维护角色的目的,因为我不需要每次 GET 调用都使用循环。所以我期待在 testplaybook.yml 中循环角色。
测试角色:main.yml
testplaybook.yml:
预期输出:
响应结果:
ansible - ansible角色造成的模板错误如何解决
我一直在尝试编写一个角色,该角色的变量初始化为空,并且根据应用于项目的 Jinja 过滤器附加值,但它经常出错
testplaybook.yml:
处理\任务\main.yml:
预期结果是“附加”应该能够根据应用于“语句”变量中的项目的过滤器进行填充,就像在单页剧本中所做的那样。
ansible - 错误!在 Ansible 控制器上找不到 vars 文件 vars
错误!在 Ansible 控制器上找不到 vars 文件 vars。如果您正在使用模块并希望文件存在于远程,请参阅 remote_src 选项。
尝试在服务器上运行 main.yml 以在远程主机 (linux) 上执行。vars 目录中的 vars playbook 有两个 playbook(active-users、remove-users)。
ansible - Ansible 添加 apt_key
任务文件可能有什么问题?
这个角色应该这样做:
为 vscodium 添加 apt 密钥
添加 vscodium 存储库
安装 vscodium
当我想使用 ansible 时$ansible-playbook /etc/ansible/ubuntu_real.yml
,会显示此错误:
/etc/ansible/roles/ubuntu_real 的任务文件包含错误 apt_key
运行角色文件 /etc/ansible/ubuntu_real.yml
ansible - 如何将保险库(保险库变量)传递给角色本身具有多个依赖角色的多个角色?
我正在运行 ansible 2.7.10 并有一本剧本,其中我在不同的剧本中“包含”了不同的角色。我所称的所有角色都有共同的依赖角色。
我现在处于一个阶段,我希望该剧本中的所有角色都阅读保险库。
如果我将文件作为额外变量( -e @ )传递,则此方法有效
role1 和 role2 都有依赖的角色:
我在这里读到,我可以将 Vault 包含在主要角色的“vars”中。从属角色有没有办法从主要角色继承变量(在这种情况下是保险库)?
ansible - 使用 awx/ansible 中的 requirements.yml 为角色签出相同的分支
我有一个项目 git 存储库和一个角色 git 存储库都有同名的分支,我的项目 git 存储库的 requirements.yml 类似于下面
问题是 awx 将始终使用上述 requirements.yml 而不是我的分支检查主版本,所以我永远无法测试我的分支更改
我可以将版本更改为分支名称然后提交它但是如果我忘记将其更改回来并合并我的更改现在主项目分支将使用我的角色分支而不是主副本
我已经尝试在 awx 克隆它之后编辑 requirements.yml 版本,但是由于修改它会拒绝执行 scm 更新。
有没有人知道一种方法可以让我在 awx 上使用我自己的角色分支而不破坏主分支,如果它被意外签入?
ansible - handlers main.yml 显示错误 handlers/main.yml 文件必须包含任务列表
我在 handlers/main.yml 中建立了一些角色,我已经指定了一些处理程序作业,但我无法执行它们。这是错误消息:
错误!角色“sample-mysql”的 handlers/main.yml 文件必须包含任务列表
该错误似乎在“/home/automation/plays/roles/sample-mysql/handlers/main.yml”中:第 2 行,第 3 列,但可能在文件中的其他位置,具体取决于确切的语法问题。
我做了一些更改,但仍然无法正常工作。我还希望这个文件从另一个文件加载处理程序。有可能这样做吗?如 - 包括:指令
错误!角色“sample-mysql”的 handlers/main.yml 文件必须包含任务列表
该错误似乎在“/home/automation/plays/roles/sample-mysql/handlers/main.yml”中:第 2 行,第 3 列,但可能在文件中的其他位置,具体取决于确切的语法问题。
违规行似乎是: