问题标签 [ansible-galaxy]
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.
kubernetes - 即使安装了集合,“community.kubernetes.k8s”也无法在 Ansible 中解析
我想使用 Ansible 创建一些 Kubernetes 对象。可以做到这community.kubernetes.k8s
一点,它包含在community.kubernetes
集合中。当我尝试创建命名空间时
Ansible 抛出集合未安装的错误:
但是它已经安装好了,正如ansible-galaxy collection install
确认的那样:
我安装的 Ansible 版本是 Python 3.8.10 上的 2.9.6,其中ansible_python_interpreter=/usr/bin/python3
设置和 Python2 未安装在工作站上(以 为目标ansible_connection=local
)。
我究竟做错了什么?
我已经尝试过的
使用旧 + 新命名
安装集合需要 Ansible 2.9+ ansible-galaxy
,所以这应该可以工作。在收集文档中,我发现了这个通知:
重要信息 community.kubernetes 集合正在重命名为 kubernetes.core。从 2.0.0 版本开始,该集合已被弃用的所有内容重定向到 kubernetes.core 所取代。如果您使用以 community.kubernetes 开头的 FQCN,请将它们更新为 kubernetes.core。
尽管这似乎令人困惑,因为 Ansible 文档仍然提到community.kubernetes.k8s
我也尝试过
并且可以肯定
但仍然抛出相同的无法解决模块/操作“kubernetes.core.k8s”错误。两个目录都~/.ansible/collections/ansible_collections/kubernetes/core/
存在~/.ansible/collections/ansible_collections/community/kubernetes/
,所以我猜这两个(旧+新命名)都应该工作。
检查目录
ansible-galaxy
通过用switch调用-vvv
,我证明了它/home/user/.ansible/collections/ansible_collections
是有用的。它还表明这些软件包在后台安装了两个软件包:旧community.kubernetes
的和新的kubernetes.core
:
这对我来说似乎更令人困惑,因为旧的回购说
这个 repo 托管 community.kubernetes (aka kubernetes.core) Ansible Collection。
对我来说,这听起来像是他们只是在更改名称。但正如我们所见,kubernetes.core
它有自己的 repo 和版本(2.1.1 vs 2.0)。
为了确保使用此目录,我ansible.cfg
在项目范围内将以下内容添加到本地:
没有任何区别。
ansible - 将ssl证书从服务器复制到ansible中的主机
我正在尝试将本地容器注册表的证书复制到具有 ansible 版本 2.9.6 的 Docker 主机。注册表由其他人管理,但在我们的本地网络中。
使用外壳我会这样做:
到目前为止,我在community.crypto
模块上工作了 ansible ans 设法获得证书:
这类似于 shell 替代方案的前半部分。我还没有弄清楚如何完成后半部分的工作,即使用从服务器接收到的内容创建证书。
我尝试使用community.crypto.x509_certificate
,但无法使其表现得像openssl_client
以下 shell 示例中的那样。
有没有办法用community.crypto
模块或以任何其他方式使用 ansible 来做到这一点?
git - 用于私有 gitlab 存储库的 Ansible-Galaxy,只为所有角色引用一个角色的文件
我只是潜入在私人 gitlab git 存储库中托管定制角色。
对此的答案可能只是“你必须为 1 个角色只有 1 个 repo”,我没有这样做。我试图将两个角色放在一个仓库中,并且刚刚使用文件夹在顶层区分它们。
我似乎已经正确编写了“requirements.yml”,因为它取消了我的角色。但是,它将“nexus”中的所有文件放入“chocolatey_factory”的骨架角色中。'nexus' 导入的角色很好。
我的需求文件如下:
这是我的回购布局。我的想法是让 repo 顶层的每个文件夹都成为一个角色。所以在这种情况下,我有两个角色。
我在这里做错了什么?
一个是“nexus”,另一个是“chocolatey_factory”。Nexus 是我获取的可用于配置 Sontaype nexus 的公共角色。Chocolatey_factory 是我正在制作的,但此时它只是一个 ansible-galaxy init 骨架:
然后我运行我的 ansible-galaxy 命令
它导入角色。但是来自“nexus”角色的文件出现在“chocolatey_factory”角色中。
'nexus' 角色有像 pom.xml 这样的文件,其中 'chocolatey_factory' 除了 ansible-galaxy init 创建的东西之外没有任何东西(即它没有 pom.xml 文件)。
您可以在这里看到两个文件夹都有相同的文件。
为什么我的一个角色的文件被插入到另一个角色中?在同一个 git 存储库中不能有两个角色吗?
docker - 运行本地 ansible 创建本地 docker Image
目录结构
我正在尝试使用 ansible 创建 docker 映像。这是我的剧本 yml
我的 Postgres Docker 文件
当我从项目根目录执行 ansible-playbook 时,这是执行的结果。
根据输出,我希望构建 docker 映像并准备好推送到本地注册表。但是当我执行时,docker images
我根本看不到那个图像。
到目前为止我的分析:
我的 DockerFile 必须从项目的根路径复制一些脚本,这就是它具有“../scripts/db-schema”的原因。我无法更改此路径,因为我的docker-compose.dev.yml
文件在构建中直接使用相同的 DockerFile 来创建开发容器。
我猜 docker 镜像创建失败,但是 ansible 模块不会抛出错误并提供成功的输出。
其次,ansible docker 模块没有像docker-compose
yml 中允许的那样自定义构建上下文的配置。
这是我docker-compose.dev.yml
的参考
我的问题:
- 我怎么解决这个问题 ?无需重新安排,也无需更改现有的 DockerFile
- 如何将 ansible docker 模块配置到自定义上下文?
- 为什么 ansible docker 模块没有抛出错误?
Repro 回购:https ://github.com/sathishsoundharajan/ansible-repro
它具有在本地任何人中重现问题所需的文件
ansible - 使用 ansible 模块将新磁盘添加到 LVM 组
https://serverfault.com/questions/1078120/add-new-disk-to-lvm-group-using-ansible-module
我发布了上述问题,但不确定它是否在正确的位置,所以在这里发布交叉。
团队,有 lvol 模块,但我很难找到将新设备添加到现有 VG 组的方法。所以我采取了替代路线来使用 shell 模块并运行 RAW 命令。但是有没有办法可以使用ansible实现相同的目标?下面是我的代码,它为 4 个步骤运行 4 个任务,它们都工作正常。我只需要等效或更好的 ansible 方法。我知道我可以使用 LIST 参数并将其设为单个任务,但我想在输出中唯一地显示每个任务,以便在观察到失败时。我可以看到它失败的地方。
变量.yaml
ansible - ios_logging_global 是幂等的吗?
这是我的剧本。我正在尝试向我的交换机添加一个新的日志服务器。
该剧本正在工作(它确实添加了服务器),但它不是幂等的。还有其他人有这个问题吗?我检查了 LF 和编码。Galaxy 系列“cisco.ios”的版本是 2.5。
我的版本是:
$ansible --version
我怎样才能使它具有幂等性?
ansible - 我无法通过版本标签从 github 安装角色
回购和标签对我来说看起来不错。我可以在不指定标签的情况下安装它,但是它没有版本化:
在此先感谢您的任何建议!
ansible - 如何使用 ansible-galaxy 命令列出 Ansible Galaxy 角色的版本?
当我使用“ansible-galaxy info author.role_name”时,我得到了大量信息,但没有以前版本的列表。
在网站上,每个角色都有一个很好的以前版本列表,但是当我使用 info 时,没有版本列表:
我在哪里可以找到使用 ansible-galaxy 命令行工具的角色以前版本的列表?
python - 错误!无法解析模块/操作“community.aws.ec2_instance_info”。这通常表示拼写错误、缺少集合或模块路径不正确
我有几台安装了 ansible 的 Ubuntu 18.04 机器。在所有这些上运行ansible --version
时,我得到以下输出:
顺便说一句,在 处定义的路径configured module search path
不存在。
我在所有机器上安装了 community.aws 集合:
ansible-galaxy collection install community.aws
我运行了一个简单的剧本来从一些 AWS EC2 实例中收集数据:
除一台机器外,所有机器上一切正常,我收到以下错误:
我跑了一个sudo find / -name "ec2_instance_info.py"
看看该文件可能安装在哪里。在所有机器上,我得到完全相同的输出:
我什至在运行这个的机器上强制重新安装:
我得到了这个输出:
但这并没有改变什么。
我还在以前一切正常的机器上运行了强制重新安装。我也设法打破了它。现在我有两台机器正在重现问题。
一种解决方案是直接ec2_instance_info
在我的剧本中调用,而不是community.aws.ec2_instance_info
. 这有效,但我不知道为什么。无论如何,我不喜欢这个解决方案,因为一些 ansible aws 插件可以在没有 community.aws 前缀的情况下工作,而其他插件则不能。除此之外,当我调用不带前缀的插件时,VS Code 会给我很多警告。
你知道如何解决这个问题吗?我想调用community.aws.ec2_instance_info
我的剧本,而不会在任何机器上遇到任何问题。
ansible - Ansible 离线安装集合
我正在尝试从 tar 文件安装 Ansible,但我似乎面临以下问题:
我得到的错误是:
我遵循了本指南:https ://www.redhat.com/sysadmin/install-ansible-disconnected-node
有什么建议么?