レッドハットの佐々木です。ソリューションアーキテクト(プリセールスのエンジニア)をやっています。
あまり知られていませんが、レッドハットにはランニングクラブがあります。毎週水曜日の夜に赤いTシャツを着て皇居の周りを走っていますので、見かけたら声をかけてくださいね。
さて、今日はAnsible Towerをオフライン(インターネットに接続していない環境)でインストールする方法をご紹介します。
Ansible Towerの公式インストール手順はここに書いてありますので、詳細はこちらを参照してください。(といっても、オフラインでインストールする手順の詳細は書かれていません。)
一般的なインストール手順は、
1. Tower Installer (tar.gz ファイル)をダウンロード
2. tar.gzを展開
3. Inventoryファイルを編集
4. setup.shを実行
という流れになるのですが、setup.shからyum installで多くのパッケージがインストールされるため、インターネットにアクセスできることが前提になります。
そこで、オフラインでインストールする時は Bundled Tower Installer を使います。Bundled Tower InstallerにはAnsible Towerのインストールに必要なRPMファイルが概ね含まれているので、オフラインでインストールする時に便利です。
概ねと書きましたが、実はBundled Tower Installerには全てのRPMファイルが含まれているわけではありません。具体的には、Red Hat Enterprise Linux (以下RHEL)のRPMパッケージは含まれていないので、別途用意する必要があります。
必要なRPMファイルを事前にコピーしておけばAnsible Towerのインストールは可能ですが、数十個のRPMファイルが必要になるため少し面倒です。ここではRHELのインストールDVDを使ってオフラインインストールする方法を紹介します。
なお、以下の手順ではRHELがMinimalでインストールされた環境にAnsible Towerをインストールしています。Ansible (TowerではないコマンドラインのAnsible)もTower Installerがインストールします。
1. 事前準備
必要なファイルをAnasible Towerをインストールするシステム(RHEL7.4以上)にコピーしておきます。必要なファイルは次の二つです。
* RHELのインストールDVD ISOイメージファイル*1 (以下のコマンド実行例では rhel-server-7.6-x86_64-dvd.iso を使用)
* Ansible TowerのBundled Tower Installer*2 (以下のコマンド実行例では ansible-tower-setup-bundle-3.3.1-1.el7.tar.gz を使用)
2. RHELインストールDVDイメージを使ったローカルレポジトリの設定
インストールDVDイメージを使って、ローカルレポジトリを設定します。
[root@tower ~]# pwd /root [root@tower ~]# ls -la total 4582344 dr-xr-x---. 2 root root 4096 Dec 8 23:34 . dr-xr-xr-x. 17 root root 4096 Dec 8 23:27 .. -rw-------. 1 root root 5 Dec 8 23:32 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc -rw-------. 1 root root 1790 Dec 8 23:27 anaconda-ks.cfg -rw-r--r--. 1 root root 194940801 Dec 8 23:34 ansible-tower-setup-bundle-3.3.1-1.el7.tar.gz -rw-r--r--. 1 root root 4497342464 Dec 8 23:34 rhel-server-7.6-x86_64-dvd.iso [root@tower ~]# mkdir /mnt/dvd [root@tower ~]# mount -o loop /root/rhel-server-7.6-x86_64-dvd.iso /mnt/dvd mount: /dev/loop0 is write-protected, mounting read-only [root@tower ~]# ls -l /mnt/dvd total 962 dr-xr-xr-x. 3 root root 2048 Oct 11 03:34 EFI -r--r--r--. 1 root root 8266 Apr 4 2014 EULA -r--r--r--. 1 root root 18092 Mar 6 2012 GPL dr-xr-xr-x. 2 root root 2048 Oct 11 03:34 LiveOS dr-xr-xr-x. 2 root root 931840 Oct 11 03:34 Packages -r--r--r--. 1 root root 3375 Sep 21 23:59 RPM-GPG-KEY-redhat-beta -r--r--r--. 1 root root 3211 Sep 21 23:59 RPM-GPG-KEY-redhat-release -r--r--r--. 1 root root 1796 Oct 11 03:34 TRANS.TBL dr-xr-xr-x. 4 root root 2048 Oct 11 03:34 addons -r--r--r--. 1 root root 1455 Oct 11 03:02 extra_files.json dr-xr-xr-x. 3 root root 2048 Oct 11 03:34 images dr-xr-xr-x. 2 root root 2048 Oct 11 03:34 isolinux -r--r--r--. 1 root root 114 Oct 11 03:09 media.repo dr-xr-xr-x. 2 root root 4096 Oct 11 03:34 repodata [root@tower ~]# cp /mnt/dvd/media.repo /etc/yum.repos.d/rhel7dvd.repo [root@tower ~]# chmod 644 /etc/yum.repos.d/rhel7dvd.repo [root@tower ~]# vi /etc/yum.repos.d/rhel7dvd.repo #以下のように編集 [root@tower ~]# cat /etc/yum.repos.d/rhel7dvd.repo [InstallMedia] name=Red Hat Enterprise Linux 7.6 mediaid=1539194970.388895 metadata_expire=-1 gpgcheck=1 cost=500 enabled=1 baseurl=file:///mnt/dvd/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [root@tower ~]# yum clean all Loaded plugins: product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Cleaning repos: InstallMedia Cleaning up everything [root@tower ~]# subscription-manager clean All local data removed
3. Ansible Towerをインストール
あとは普通にBundled Tower Installerを使ってインストールするだけです。
[root@tower ~]# tar xzvf ansible-tower-setup-bundle-3.3.1-1.el7.tar.gz ### 省略 ### [root@tower ~]# cd ansible-tower-setup-bundle-3.3.1-1.el7 [root@tower ansible-tower-setup-bundle-3.3.1-1.el7]# vi inventory ### 必要な設定を行う ### ### 特別な設定をしない場合は admin_password, pg_password, rabbitmq_password に適当な文字列を入れれば良い ### [root@tower ansible-tower-setup-bundle-3.3.1-1.el7]# df -h # 念のためISOイメージがマウントされていることを確認 Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 5.4G 13G 31% / devtmpfs 1.4G 0 1.4G 0% /dev tmpfs 1.4G 0 1.4G 0% /dev/shm tmpfs 1.4G 8.6M 1.4G 1% /run tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup /dev/sda1 497M 120M 378M 25% /boot /dev/loop0 4.2G 4.2G 0 100% /mnt/dvd [root@tower ansible-tower-setup-bundle-3.3.1-1.el7]# ./setup.sh ### 以下省略 ###
RHELのインストールDVDイメージをマウントしてローカルレポジトリにするやり方は、Ansible Towerのオフラインインストール以外にも使える小技なので、是非活用してください。もちろん、ISOファイルでは無くてDVDメディアに焼いたものでも可能です。