在中国上海使用本地服务器离线安装Ansible/Ansible Tower
首先
这是一篇关于Ansible Advent Calendar的文章。
我已经从使用Ansible的部门调动到另一个部门,但个人仍然会偶尔使用它。
这篇文章将介绍如何在没有互联网连接的环境中进行 Ansible 和 Ansible Tower 的离线安装。我相信有时候会遇到需要在无法上网的环境中进行安装的情况。(我自己就遇到过)
由于那时经历了许多痛苦的事情,所以我将其整理成一篇文章。
前置条件
-
- 実行した環境はCentOS 7.6 64bitとなります。
-
- RHEL 7.5でも本手順でインストールが可能なことを確認しています。
-
- ユーザはrootで実行しています。
- すべてのファイルはデフォルトパス(/root配下)に配置して作業しています。
事前准备
当进行Ansible和Ansible Tower的离线安装时,需要使用RHEL安装ISO映像文件。
您可以从该网站下载映像文件。
您还可以从该网站获取Ansible Engine的rpm文件。如果不使用常规的Ansible,请从这里下载rpm包。
请从这个网站上下载Ansible Tower的离线用软件包bundle版。
版本信息
这次安装的是Ansible和Ansible Tower等版本。
安装Ansible
挂载DVDiso镜像文件
首先,我們要掛載 ISO 映像檔。
接下來,使用以下指令來解壓縮檔案。
# ファイルを展開
$ mount -o loop /root/rhel-server-7.7-x86_64-dvd.iso
# 展開できたかどうかの確認
$ ls -l /mnt
合計 974
dr-xr-xr-x. 3 root root 2048 7月 23 23:56 EFI
-r--r--r--. 1 root root 8266 7月 23 23:29 EULA
-r--r--r--. 1 root root 18092 7月 23 23:29 GPL
dr-xr-xr-x. 2 root root 2048 7月 23 23:56 LiveOS
dr-xr-xr-x. 2 root root 946176 7月 23 23:56 Packages
-r--r--r--. 1 root root 3375 7月 3 21:51 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root 3211 7月 3 21:51 RPM-GPG-KEY-redhat-release
-r--r--r--. 1 root root 1796 7月 23 23:56 TRANS.TBL
dr-xr-xr-x. 4 root root 2048 7月 23 23:56 addons
-r--r--r--. 1 root root 1455 7月 23 23:29 extra_files.json
dr-xr-xr-x. 3 root root 2048 7月 23 23:56 images
dr-xr-xr-x. 2 root root 2048 7月 23 23:56 isolinux
-r--r--r--. 1 root root 114 7月 23 23:32 media.repo
dr-xr-xr-x. 2 root root 2048 7月 23 23:56 repodata
接下来,我们将在/etc/yum.repos.d目录下添加操作仓库。
# rhel7-dvdiso.repoという名前でrepoファイルをコピー
$ cp /mnt/media.repo /etc/yum.repos.d/rhel7-dvdiso.repo
# 権限を変更する
$ chmod 644 /etc/yum.repos.d/rhel7-dvdiso.repo
# コピーを作成
$ cp -ip /etc/yum.repos.d/rhel7-dvdiso.repo /etc/yum.repos.d/rhel7-dvdiso.repo.org
在创建副本之后,将 rhel7-dvdiso.repo 文件编辑为以下内容。
[InstallMedia]
name=Red Hat Enterprise Linux 7.7
mediaid=1563892373.442998
metadata_expire=-1
gpgcheck=1
cost=500
enabled=1
baseurl=file:///mnt/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
在更新repo文件后,我们将清理yum存储库。
$ yum clean all
読み込んだプラグイン:fastestmirror
リポジトリーを清掃しています: InstallMedia base extras updates
下载依赖文件
当您在离线安装Ansible时,由于依赖关系,以下文件的下载是必需的。
-
- sshpass
RPMダウンロードリンク
python-httplib2
RPMダウンロードリンク
python-passlib
RPMダウンロードリンク
python2-jmespath
RPMダウンロードリンク
每个人都将获取RPM文件并安装它们。
yum -y install sshpass-1.06-1.el7.x86_64.rpm
yum -y install python-httplib2-0.9.1-2.1.el7.noarch.rpm
yum -y install python-passlib-1.6.5-1.1.el7.noarch.rpm
yum -y install python2-jmespath-0.9.0-4.el7ae.noarch.rpm
安装Ansible
既经解决了依赖关系,所以要安装Ansible。
yum -y install ansible-2.7.4-1.el7ae.noarch.rpm
如果您在尝试使用此命令安装时遇到获取 GPG 密钥失败的情况,请使用选项–nogpgcheck进行安装。
安装 Ansible Tower
挂载DVDiso镜像
这部分与Ansible中的相关部分一致。
解压tar文件
Ansible Tower的绑定版本被压缩为tar格式,需要进行解压。
tar -zxvf ansible-tower-setup-bundle-3-3-3.el7.tar.gz
cd ansible-tower-setup-bundle-3.3.3-1.el7/
编辑inventory文件
如果您已经安装过Ansible Tower,那么您可能已经知道,在Ansible Tower的inventory文件中设置密码的位置。
每个对应表如下:
编辑适当的库存文件条目。
安装Ansible Tower
由于Ansible Tower提供了设置脚本setup.sh,因此我们会执行这个脚本。大约需要10分钟左右才能完成安装。
PLAY RECAP *********************************************************************
localhost : ok=143 changed=70 unreachable=0 failed=0
The setup process completed successfully.
Setup log saved to /var/log/tower/setup-2019-12-02-00:21:17.log
当显示出这样的结果时,表示安装已经成功完成并处于正常状态。
在浏览器中访问本地IP地址将显示登录界面。
然后输入指定的密码进行登录,并输入许可证密钥。
使用此方法可以执行Ansible和Ansible Tower的离线安装。