1

我知道您可以在 Ansible 中设置代理以在企业网络后面进行配置: https ://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html

像这样:

environment:
    http_proxy: http://proxy.example.com:8080

不幸的是,就我而言,根本无法从服务器访问互联网。在本地下载角色并将它们放在 /roles 文件夹下似乎可以解决角色问题,但是角色在使用时仍然从 Internet 下载包:

package:
   name: package-name
   state: present

我想没有办法让干/预运行所以 Ansible 下载所有包,然后将其推送到 repo 并使用本地下载的包运行 Ansible 配置?

4

3 回答 3

1

这不是关于 Ansible 的真正问题,因为 Ansible 所做的只是在目标主机上运行相关的包管理系统(即 yum、dnf 或 apt 或其他)。因此,对于这种情况,具体的包管理工具提供什么解决方案是一个问题。

有多种解决方案,例如在 Centos/RHEL 世界中,您可以:

还有一类工具通常称为人工制品存储库。它们最初是作为存储由代码构建的二进制文件的工具,但添加了许多功能来充当代理和缓存来自各种来源(OS 包、PIP、NodeJS、Docker 等)的包。免费提供有限的两个示例:

他们当然仍然需要从源中收集这些包,因此在某些时候必须下载这些包以放置在这些系统中。

于 2019-01-14T16:02:33.050 回答
0

我的解决方案:

注意:对 APT 这样做并且工作正常,对 yum 期望相同

于 2019-10-18T10:34:56.353 回答
0

就像clockworknet 指出的那样,这与RHEL 包处理更相关。在封闭网络内的某处设置本地镜像可以在这种情况下提供解决方案。有关“如何在不使用 Satellite 服务器的情况下为 Red Hat Enterprise Linux 5、6、7 创建最新更新的本地镜像?”的更多信息:https ://access.redhat.com/solutions/23016

于 2019-01-15T12:47:42.003 回答