问题标签 [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 - Ansible - 列出角色中的任务
是否可以列出 Ansible 角色中的任务?
即,除了 grepping for 之外- name
,是否有一种开箱即用的方式来做到这一点?
python-2.7 - Ansible Alternative 目录结构需要路径
我正在尝试从 Ansible 文档站点最佳实践部分创建替代目录布局。
按照这个指导,这是我在里面创建的布局~/ansible_proj/windows_setup
(windows_setup
是一个 Python 虚拟环境):
当我尝试运行 playbook时,按照此处windows_configure.yml
的建议(参见第一个示例),使用
错误是
我必须指出hosts
文件的路径,而不是像:
为了让它运行。
Q1。如何使用替代目录布局通过使用production
(如文档建议)而不是运行剧本inventories/production/hosts
?
在相同的目录结构中,如果我放在windows_configure.yml
里面playbooks/
,并运行:
然后我得到这个错误
Q2。在这个替代目录结构中,是否可以将所有剧本放在一个playbooks
目录中?
编辑
我尝试添加ansible.cfg
到当前目录(~/ansible_proj/windows_setup
)(其中还包含剧本windows_configure.yml
。这里是ansible.cfg
:
当我跑
出现同样的错误
ansible - ansible:如何在角色之间共享变量
我需要在同一主机上执行一些任务,但想将任务分组到需要彼此共享一些输出的不同角色中。考虑下面的例子
有没有办法收集角色1的输出并将其传递给角色2和角色3
或任何其他在角色之间共享变量的机制?
ansible - 如何只运行 Ansible 剧本的一个角色?
我有一个 site.yml 导入几个剧本。
每个剧本“调用”几个角色:
我怎样才能只运行 javajdk 角色?
这将运行所有角色...
ansible-playbook -i inventory webservers.yml
我知道有标签,但我如何将它们分配给一般角色?
ansible - Ansible 始终运行角色
有什么办法可以一直扮演角色吗?我在开始任何部署之前创建锁定文件以防止并行部署。如果出现任何失败/成功,我想删除锁定文件。
无论失败/成功,我都想运行解锁部署角色。
git - Ansible 不会从 Git SCM 安装依赖项
我正在尝试创建一个名为“Adminer”的新 Ansible 角色,该角色需要“Apache”角色。
我已将 Apache 角色指定为以下依赖项meta/main.yml
:
我正在使用 Vagrant 测试 Adminer 角色,但出现以下错误:
Ansible 不应该从提供的 git repo 下载新角色吗?
这是我的流浪文件:
感谢您的帮助
ansible - ansible传递给映射变量
我有一个可靠的 tomcat 角色
默认值/main.yml
我有另一个角色(应用程序),它使用 tomcat 角色作为依赖项,如下所示
默认值/main.yml
元/main.yml
当我在目标上运行应用程序角色时,我希望将应用程序角色 (ISO-8859-1) 中定义的 URIEncoding 值传递给 tomcat 角色并覆盖 uriencoding 的 tomcat 角色默认值。
我无法将值传递给 tomcat 角色' {{ tomcat_http.URIEncoding }}
。我尝试过的一些选项
要么我收到语法错误,要么就是不起作用。如果有人对如何将值传递给映射变量有任何想法,请告诉我。
ansible - Ansible 角色工作流程问题
我想(步骤 1)更改 postgresql 配置文件,(步骤 2)重新启动服务,然后(步骤 3)添加 db 用户。
../roles/postgres/tasks/main.yml
../roles/postgres/handlers/main.yml
postgres.yml
问题:ansible 角色中真正的工作流程是:step1 -> step3 -> step2。
我可以通过将处理程序任务移入来修复它../roles/postgres/tasks/main.yml
,但无论配置文件是否更改,它都会重新启动服务。
这种请求的最佳做法是什么?
pip - Ansible role with shared python virtual environment
I have ansible role which have task delegated to localhost:
The Role register_remote_systems must work for every host in my_hosts, but must be ran from the box where Ansible is invoked, that is why there is delegate_to.
The role register_remote_hosts checks for a specific application on localhost and if one is not installed it creates virtual environment and then installs it:
Everything works great, but if there are many hosts in my_hosts then a lot of venvs are being created.
What would be the best approach to create role which is reusing same venv with my_app installed. Note that role is included in many different playbooks and I do not want to write additional role included in every playbook where "Register remote hosts" included role is used. There is of course concurrency problem of creating venv prior to using that in other playbooks.
Above solution works and I can live with it, but maybe there are nicer design patterns for such problems in Ansible.
variables - 在ansible中如何从另一个变量初始化一个变量?
在 Ansible 角色中,如何定义一个依赖于另一个变量的变量?
我正在设计一个角色,并希望它的界面能够理解一个剧本变量,比如framework_enable_java = yes
orframework_enable_java = mysql tomcat
并且想要编写一个vars/main.yml
定义布尔值的文件
根据内容framework_enable_java
。我尝试了类似的明显定义
以及几种或多或少微妙的方法,例如
或者
结果他们都没有工作。看起来相似的问题是不相关的,因为它更像是实现变量间接而不是变量推导。
是否有可能 vars/main.yml
为我的角色编写所需的内容?它会是什么样子?如果不可能,那么进行这些扣除的最佳方法是什么?(例如使用任务包括?)