Ansibleのインストール (RHEL 8 / CentOS 8)
RHEL 8 / CentOS 8におけるAnsibleのインストール手順を説明します。
前提条件
- 作業は、root権限を持つユーザで実施します。
- 以下のバージョンのソフトウェアで検証しています。
作業手順
Python関連パッケージのインストールAnsibleは、Pythonパッケージ管理システムのpipを使用してインストールします。そのため、先にPythonとpipのRPMパッケージをインストールします。 SSH接続で使用するsshpassもここでインストールを行います。
# dnf -y install python3-pip epel-release (略) 完了しました! # dnf -y install sshpass (略) 完了しました! Ansible用のOSユーザ作成Ansibleを使用するための専用ユーザansbileをOS上に作成します。
# useradd ansible # passwd ansible ユーザー ansible のパスワードを変更。 新しいパスワード: ←ansibleユーザのパスワードを入力 新しいパスワードを再入力してください: ←同様のパスワードを入力 passwd: すべての認証トークンが正しく更新できました。 AnsibleのインストールansibleユーザのホームディレクトリにAnsibleをインストールするため、ユーザをrootからansibleへ変更します。
# su - ansible $ pwd /home/ansiblepipを使用して、PythonパッケージとしてAnsibleをインストールします。
$ pip3 install ansible --user (略) Successfully installed MarkupSafe-1.1.1 PyYAML-5.2 ansible-2.9.1 jinja2-2.10.3Ansibleのバージョンが表示できれば、インストールは完了です。
$ ansible --version ansible 2.9.1 (略) SSH公開鍵認証の設定Ansibleが動作するサーバ(以下、構成管理サーバ)と、Ansibleで構成管理を行う対象のサーバ(以下、管理対象サーバ)との間は、SSHで接続を行います。通常SSHの認証にはパスワードを使用しますが、公開鍵認証方式を使用することでパスワードの入力が不要となり、より安全に認証が行えます。
ansibleOSユーザのリモートログインに公開鍵認証方式を使用するために、SSHキーペアを作成します。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/ansible/.ssh/id_rsa): ← Enterキーを入力 Created directory '/home/ansible/.ssh'. Enter passphrase (empty for no passphrase): ← Enterキーを入力 Enter same passphrase again: ← Enterキーを入力 Your identification has been saved in /home/ansible/.ssh/id_rsa. Your public key has been saved in /home/ansible/.ssh/id_rsa.pub. The key fingerprint is: SHA256:nu0Ye71Qt6JvgTOlw0XJaNnoXD6DATnUtMQxxxxxxxx ansible@ansible The key's randomart image is: +---[RSA 2048]----+ | .o*oB =o | | o.X.@ | | =.O + | | + x E | | S. =.*. | | . oB... . | | + x=... | | =.oo. | | o.ooo. | +----[SHA256]-----+秘密鍵ファイル(id_rsa)と公開鍵ファイル(id_rsa.pub)は、以下の場所に作成されます。
$ ls -l /home/ansible/.ssh/ 合計 8 -rw-------. 1 ansible ansible 1823 12月 5 04:10 id_rsa -rw-r--r--. 1 ansible ansible 397 12月 5 04:10 id_rsa.pub参考情報
Python関連パッケージ一覧本作業でインストールするPython関連パッケージは以下の通りです。オフライン環境でインストールする場合は、リポジトリから取得したパッケージファイルをインストール対象サーバに転送してローカルインストールします。
# dnf install python3-pip (略) ================================================================================================= パッケージ アーキテクチャー バージョン リポジトリ サイズ ================================================================================================= Installing: python3-pip noarch 9.0.3-13.el8 AppStream 18 k 依存関係をインストール中: python36 x86_64 3.6.8-2.module_el8.0.0+33+0a10c0e1 AppStream 19 k python3-setuptools noarch 39.2.0-4.el8 BaseOS 162 k Enabling module streams: python36 3.6 トランザクションの概要 ================================================================================================= インストール 3 パッケージ ダウンロードサイズの合計: 200 k インストール済みのサイズ: 466 k Ansibleのインストール場所Ansibleおよび関連するパッケージは、ansibleユーザのホームディレクトリに作成された.localディレクトリにPythonモジュールとしてインストールされます。
$ ls -l /home/ansible/.local/bin/ 合計 28 -rwxrwxr-x. 1 ansible ansible 5935 12月 4 18:54 ansible lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-config -> ansible -rwxrwxr-x. 1 ansible ansible 12496 12月 4 18:54 ansible-connection lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-console -> ansible lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-doc -> ansible lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-galaxy -> ansible lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-inventory -> ansible lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-playbook -> ansible lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-pull -> ansible -rwxrwxr-x. 1 ansible ansible 795 12月 4 18:54 ansible-test lrwxrwxrwx. 1 ansible ansible 7 12月 4 18:54 ansible-vault -> ansible $ ls -l /home/ansible/.local/lib/python3.6/site-packages/ 合計 12 drwxrwxr-x. 2 ansible ansible 130 12月 4 18:54 Jinja2-2.10.3.dist-info drwxrwxr-x. 2 ansible ansible 106 12月 4 18:54 MarkupSafe-1.1.1.dist-info drwxrwxr-x. 2 ansible ansible 117 12月 4 18:54 PyYAML-5.2-py3.6.egg-info drwxrwxr-x. 18 ansible ansible 4096 12月 4 18:54 ansible drwxrwxr-x. 2 ansible ansible 157 12月 4 18:54 ansible-2.9.1-py3.6.egg-info drwxrwxr-x. 6 ansible ansible 88 12月 4 18:54 ansible_test drwxrwxr-x. 3 ansible ansible 4096 12月 4 18:54 jinja2 drwxrwxr-x. 3 ansible ansible 169 12月 4 18:54 markupsafe drwxrwxr-x. 3 ansible ansible 4096 12月 4 18:54 yaml