问题描述
在使用Ansible时遇到了问题,他需要在80台没有外部互联网访问权限的远程Ubuntu服务器上安装软件包。他想知道是否有可能使用Ansible来更新/修补这些没有外部互联网访问权限的Ubuntu服务器?如果服务器有互联网访问权限,类似于运行”sudo apt upgrade”的操作,那么是否可以使用Ansible来完成这个任务?他想知道使用Ansible是否是一个可行的解决方案/选项?他已经在网上进行了一些研究,但没有找到解决方法。他需要关于如何使用Ansible来修补/升级没有外部互联网访问权限的远程Ubuntu服务器的任何帮助或指导。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
最佳解决方案
在这种情况下,问题并不是与Ansible直接相关,而是与建立本地网络上的软件包仓库有关。您需要一个可以缓存或镜像公共软件包的本地网络软件包仓库。
以下是一些与deb软件包相关的选项,例如rsyncmirror或apt-mirror。还有一些通用选项,可以容纳多种类型的二进制文件和软件包源,如artifactory或sonatype nexus。除了能够将软件包引入私有网络之外,它们还在环境中提供了不同级别的对可用软件包的控制。一旦您在网络上建立了本地软件包仓库,您可以使用Ansible来更新apt sources.list,以从本地URL而不是互联网上的存储库中获取软件包。
如果您不需要对可用软件包进行任何控制,将互联网存储库通过代理提供也是一个选项,但上述解决方案在长期内更具可扩展性。
补充建议
另外,您还可以考虑使用本地的APT缓存服务器来提高软件包的下载速度,从而加快服务器的更新和升级过程。这可以通过以下步骤来实现:
1. 在本地网络中的一台服务器上设置一个APT缓存服务器,例如apt-cacher-ng
或aptly
。
2. 在远程服务器上,将APT源配置文件(/etc/apt/sources.list
)中的URL修改为指向本地的APT缓存服务器。
3. 在远程服务器上使用Ansible来更新和升级软件包,Ansible会通过本地的APT缓存服务器下载所需的软件包,从而减少了互联网下载的需求。
这些方法将帮助您在没有外部互联网访问权限的情况下,使用Ansible来管理和更新远程的Ubuntu服务器。根据您的实际情况,选择合适的解决方案以满足您的需求。
总结
在处理没有外部互联网访问权限的远程Ubuntu服务器时,您可以通过建立本地网络上的软件包仓库或使用本地的APT缓存服务器,结合Ansible来实现更新和升级操作。这些方法可以显著提高软件包的下载速度并降低对外部互联网的依赖。根据您的需求和实际情况,选择适合您的环境的解决方案,并根据需要进行相应的配置和调整。