无需互联网即可进行Ansible置备

时间:2019-01-14 15:15:08

标签: ansible rhel ansible-role

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

像这样:

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

不幸的是,对于我来说,根本无法从服务器访问Internet。在本地下载角色并将它们放在/ roles文件夹下似乎可以解决角色问题,但是使用以下命令时,角色仍会从Internet下载包:

package:
   name: package-name
   state: present

我想没有办法进行空运行/预运行,因此Ansible下载所有软件包,然后将其推送到存储库中并使用本地下载的软件包运行Ansible Provisioning?

3 个答案:

答案 0 :(得分:1)

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

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

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

他们当然仍然需要从源中收集这些软件包,因此在某些时候,必须将它们下载到这些系统中。

答案 1 :(得分:1)

我的解决方案:

注意:这样做对APT来说效果很好,对于yum来说也希望如此

答案 2 :(得分:0)

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