我试图通过jenkins运行一个ansible-playbook,但我最终得到了一个错误,如下所示 "ERROR! the playbook: /home/ansible/apache/provision.yml could not be found" 我试着手动执行剧本,它工作得很好。我尝试在权限透视图中进行调试。Ansible playbook属于用户"ansible“和组"ansible”。Jenkins由用户"jenkins“运行,它也是"ansible”组的一部分,但什么都不起作用。下面是控制台输出中打印的内容。你们能告诉我如何解决这
我和Ansible一起工作,我收集了一些角色,一切都很完美,直到最近我还可以使用我的角色等等。
我试着使用hashivault_write和hashivault_read模块(),但是当我在角色(来自)集合中使用它们时,它们似乎不起作用。
ERROR! couldn't resolve module/action 'hashivault_write'. This often indicates a misspelling, missing collection, or incorrect module path.
The error appears to be in
创建ansible角色时,可以在meta/main.yml中指定依赖项,如下所示
dependencies:
- role: papanito.xxx
如果papanito.xxx被转换成集合,我是如何做到这一点的?或者让我们换个说法:我如何告诉我的角色,它取决于集合中的模块/角色?
如果运行使用角色的ansible-playbook,该角色对集合中的角色具有依赖关系,则获得以下错误:
ERROR! the role 'papanito.xxx' was not found in ansible.legacy:
/home/papanito/Workspaces/devenv/
遵循这里的示例;https://docs.ansible.com/ansible/latest/collections/ansible/builtin/package_module.html#examples
# This uses a variable as this changes per distribution.
- name: Remove the apache package
ansible.builtin.package:
name: "{{ apache }}"
state: absent
我看不出您将如何使该变量区分OS。如何根据发行版将该
目前正在为我的公司构建多个Ansible角色,其中一些将被标记为相互依赖(考虑像部署应用程序容器角色,它依赖于要安装的角色停靠器)。 然而,我们通过molecule运行自动化测试,因为我们有自己的本地源代码控制,并且将这些角色上传到ansible-galaxy不是一个选项,我希望能够为依赖角色运行自动化测试,这将需要导入它们。Documentation of molecule显示有一个名为Gilt的替代依赖项管理器。 然而,关于这一点的进一步的文档是不存在的,我想知道是否有人有一个例子来说明如何将这个角色标记为依赖于另一个角色,以便在分子测试运行期间将其导入。这里需要注意的一点是,私有存储库
我在用分子来测试我的角色。在重新启动之前,我的服务器正常工作。但是,之后,当我运行molecule create
它跳过了创建过程:跳过,实例已经创建。然而,没有任何东西在运行:
(myenv)[root]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
当运行molecule converge时。我得到了这个错误:
TASK [Gathering F
我如何在依赖角色的中指定一个角色及其参数,这两个角色都存储在单独的Git存储库中?
考虑以下不正确的示例,其中角色tomcat依赖于角色openjdk的版本8
# Role tomcat at git+http://source/ansible/roles/tomcat.
# File tomcat/meta/main.yml.
---
dependencies:
# When it retrieves role tomcat, ansible-galaxy retrieves role openjdk.
- src: git+http://source/ansible/roles/
我现在的处境是我看不出正确的使用方法。我有多个服务器分配了不同的角色,分布在几个组中。与生产/分期环境相比,我在本地Vagrant环境中遇到了一些使用group_vars的困难。在生产中,会有更多的服务器被分配给更少的组。在我的Vagrant环境中,分配给每个角色/组的机器更少。我有一台机器,它是一组组的成员,每个组都有自己的变量"tcp_ports",它列出了应该在iptables角色中为该组成员的服务器打开的端口。问题是,当然,Ansible不会在所有group_vars中自动合并这个变量。
到目前为止,我的解决方案是重命名变量tcp_ports_<group nam
当我运行以下ansible命令时:
$ ansible-playbook deploy/solo/wifi.yml -i inventories/solo
我收到以下错误消息:
ERROR! the role 'solo/controller/wifi' was not found in /home/peng/git/uavops/deploy/roles:/home/peng/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/home/peng/git/uavops/deploy
The error ap