Ansible をコントロールノードとしてCent OSにインストールする

このページでは CentOS に Ansible をインストールする手順を紹介します。Ansible はコントロールノートとして機能します。

CentOSの無料ダウンロードとインストール

CentOS 8は無料でダウンロード及びインストールが可能です。次のリンクから入手してください。インストールの手順は省略します。
CentOS のダウンロード
テスト環境では検証をやりやすくするために以下の設定を行いました。一部の設定はセキュリティを緩和しています。本番環境では十分に注意して設定してください。
(1)Selinux の無効化
Selinuxの設定を無効化しました。参考:SELinuxの無効化
(2)SSH 設定
(3)インターフェース
以下コマンドでインターフェースを立ち上げます。インタフェース名は環境により異なります。
ifup ens33
(4)VMware のインターフェース設定
VMware の場合はネットワーク構成を変更してみる。(ブリッジ接続など)

EPEL インストール

EPEL のインストールを実行します。インターネット環境に接続されている想定で行います。EPEL とは Extra Packages for Enterprise Linux の略で Redhat の追加 パッケージを提供するリポジトリです。
# yum install epel-release

(中略)
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール中:
epel-release noarch 8-8.el8 extras 23 k

トランザクションの概要
================================================================================
インストール 1 パッケージ

ダウンロードサイズの合計: 23 k
インストール済みのサイズ: 32 k
これでよろしいですか? [y/N]:
y
パッケージのダウンロード:
epel-release-8-8.el8.noarch.rpm 211 kB/s | 23 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------

(中略)

準備 : 1/1
インストール中 : epel-release-8-8.el8.noarch 1/1
scriptlet の実行中: epel-release-8-8.el8.noarch 1/1
検証 : epel-release-8-8.el8.noarch 1/1
Installed products updated.

インストール済み:
epel-release-8-8.el8.noarch

完了しました! 

Ansible のインストール

Ansible をインストールします。インターネット経由でダウンロードしてインストールします。
# yum install ansible

Extra Packages for Enterprise Linux Modular 8 - x86_64 49 kB/s | 97 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 795 kB/s | 8.2 MB 00:10
依存関係が解決しました。
==============================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
==============================================================================================================================================
インストール中:
ansible noarch 2.9.14-1.el8 epel 17 M
依存関係のインストール中:
libsodium x86_64 1.0.18-2.el8 epel 162 k
python3-babel noarch 2.5.1-5.el8 AppStream 4.8 M
python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k
python3-jinja2 noarch 2.10.1-2.el8_0 AppStream 538 k
python3-jmespath noarch 0.9.0-11.el8 AppStream 45 k
python3-markupsafe x86_64 0.23-19.el8 AppStream 39 k
python3-pyasn1 noarch 0.3.7-6.el8 AppStream 126 k
python3-pynacl x86_64 1.3.0-5.el8 epel 100 k
sshpass x86_64 1.06-9.el8 epel 27 k
弱い依存関係のインストール中:
python3-paramiko noarch 2.4.3-1.el8 epel 289 k

トランザクションの概要
==============================================================================================================================================
インストール 11 パッケージ

ダウンロードサイズの合計: 23 M
インストール済みのサイズ: 123 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/11): python3-jmespath-0.9.0-11.el8.noarch.rpm 230 kB/s | 45 kB 00:00
(2/11): python3-markupsafe-0.23-19.el8.x86_64.rpm 375 kB/s | 39 kB 00:00
(3/11): python3-pyasn1-0.3.7-6.el8.noarch.rpm 605 kB/s | 126 kB 00:00
(4/11): python3-jinja2-2.10.1-2.el8_0.noarch.rpm 589 kB/s | 538 kB 00:00
(5/11): libsodium-1.0.18-2.el8.x86_64.rpm 163 kB/s | 162 kB 00:00
(6/11): python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm 268 kB/s | 44 kB 00:00
(7/11): python3-paramiko-2.4.3-1.el8.noarch.rpm 921 kB/s | 289 kB 00:00
(8/11): python3-pynacl-1.3.0-5.el8.x86_64.rpm 183 kB/s | 100 kB 00:00
(9/11): sshpass-1.06-9.el8.x86_64.rpm 135 kB/s | 27 kB 00:00
(10/11): ansible-2.9.14-1.el8.noarch.rpm 2.3 MB/s | 17 MB 00:07
(11/11): python3-babel-2.5.1-5.el8.noarch.rpm 423 kB/s | 4.8 MB 00:11
----------------------------------------------------------------------------------------------------------------------------------------------

(中略)

インストール済み:
ansible-2.9.14-1.el8.noarch libsodium-1.0.18-2.el8.x86_64 python3-babel-2.5.1-5.el8.noarch
python3-bcrypt-3.1.6-2.el8.1.x86_64 python3-jinja2-2.10.1-2.el8_0.noarch python3-jmespath-0.9.0-11.el8.noarch
python3-markupsafe-0.23-19.el8.x86_64 python3-paramiko-2.4.3-1.el8.noarch python3-pyasn1-0.3.7-6.el8.noarch
python3-pynacl-1.3.0-5.el8.x86_64 sshpass-1.06-9.el8.x86_64

完了しました!
インストールが完了したらバージョンを確認します。ここでバージョンが表示されたらインストールに成功した可能性が高いです。
# ansible --version
ansible 2.9.14
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Apr 16 2020, 01:36:27) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
もう一つコマンドを実行して動作確認します。以下のように localhost に対して ping を送信します。 pong が戻れば成功です。
# ansible localhost -m ping
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
localhost は自分自身に対して実行することを表します。この場合はインベントリファイルは不要です。また アドホックコマンドとして ping を実行しているためプレイブックも不要です。このようにインベントリもプレイブックもなしで動作確認しています。

winrm モジュールのインストール

Windows PCを管理する場合に必要なモジュールをインストールします。
#pip3 install pywinrm

(結果は省略)

[Ansible まとめ]