ホーム テクノロジー DEVOPS Ubuntu に Ansible をインストールして構成するにはどうすればよいですか?

Ubuntu に Ansible をインストールして構成するにはどうすればよいですか?


環境のプロビジョニングと構成管理を改善するために、Ubuntu で Ansible を使い始めます。

構成管理は、DevOps ライフサイクルにおける重要な段階です。 IT インフラストラクチャの自動化とオーケストレーションに役立ちます。

構成管理には、Puppet、Ansible、Chef、SaltStack などのツールがいくつかあります。そしてもちろん、 Ansible はDevOps で最も人気のあるツールの 1 つです。数千台のサーバーと完全な IT インフラストラクチャを簡単に管理できます。

Ubuntu での Ansible のインストールと構成
Ubuntu での Ansible のインストールと構成

この記事では以下について説明します。

  • Ansible のインストール
  • SSH鍵交換
  • Ansible クライアントのセットアップ
  • Ansible テスト

Ansible のインストール

わかりやすくするために、2 つのサーバーで Ansible を使用してみましょう。 1 つは次の IP を持つ ansible-server で、もう 1 つは ansible-client になります。

  • ansible-server – 10.0.0.1
  • ansible-client – 10.0.0.25

インストールは簡単です。Ansible を使用するすべてのサーバーで次の作業を行う必要があります。この場合、上記の両方のサーバー上にあります。

  • 以下のコマンドを実行して、ansible のインストールに必要なソフトウェアをインストールします。
 root@ansible-server:~# apt install software-properties-common
  • ansible パッケージを使用してリポジトリをインストールします。
 root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
  • 高度なパッケージング ツール (apt) を更新する
root@ansible-server:~# apt update
  • そして最後に、以下のコマンドを実行してインストールします
root@ansible-server:~# apt install ansible

必要なパッケージをインストールするには数秒かかります。

インストールされているバージョンとそのバージョンを確認するにはどうすればよいですか?

まあ、簡単です。 ansible で--version構文を使用すると、以下のように確認できます。

 root@ansible-server:~# ansible --version
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
root@ansible-server:~#

ご覧のとおり、Ansible 2.8.1 がインストールされており、設定ファイルの場所、Python モジュールなどの必要な情報が提供されます。

次に、サーバーとクライアントが相互に通信できるように、SSH キー交換を行う必要があります。

SSH鍵交換

Ansible は SSH (セキュア シェル) 経由でクライアントに接続します。

まず、ansible-server 上で公開キーを生成します。これを ansible-client にコピーする必要があります。

root ユーザーとしてログインしていることを確認してください。

  • 以下に示すようにssh-keygenコマンドを使用してキーを生成します。
 root@ansible-server:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A root@ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|    =.+oo .      |
|   . B.B.= .     |
|  . o @oE +      |
|   . *oO * .     |
|    o++.S + .    |
|   .o +o . +     |
|    .o..o +      |
|     ..o o .     |
|       .o o.     |
+----[SHA256]-----+
root@ansible-server:~#

お気づきのとおり、 .sshフォルダーに公開キーが生成されています。完全なパスは /root/.ssh/id_rsa.pub です。

: 秘密鍵ファイルと公開鍵ファイルが誰でも読み取り可能でないことを確認してください。ファイルをリストして確認できます。

  • .ssh フォルダーに移動します
cd /root/.ssh
  • ファイルをリストする
root@ubuntu:~# ls -l 
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

権限が間違っていることに気付いた場合は、 chmodコマンドを使用して変更できます。

元:

 chmod 400 id_rsa
chmod 400 id_rsa.pub

IPアドレスが192.168.56.101のAnsibleホストに公開鍵をコピーしましょう

root@ansible-server:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.25
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.0.0.25's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@10.0.0.25'"
and check to make sure that only the key(s) you wanted were added.

root@ansible-server:~/.ssh#

上記の出力では、1 つのキーが正常に追加されたことがわかります。これは、SSH キーが交換されたことを示します。

次に、Ansible クライアントをセットアップします。

Ansible クライアントのセットアップ

前の手順で説明したように、クライアント サーバーでの Ansible インストール手順をすでに実行していると仮定します。

クライアントまたはホストのセットアップは、Ansible サーバーにクライアントを認識させることに他なりません。そして、そのためには:

  • Ansible サーバーにログインする
  • /etc/ansible に移動します
  • 好みのエディタを使用して、hosts ファイルに以下を追加します
[Client] 
node1 ansible_ssh_host=10.0.0.25
  • ホストファイルを保存します

Ansible テスト

すべての手順に正しく従った場合は、ansible-server で以下のコマンドを実行するとSUCCESSメッセージが表示されます。

 root@ansible-server:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
root@ansible-server:~/.ssh#

上記の Thea は、クライアントに ping を送信して接続をテストし、良好かどうかを確認します。

結論

この記事が、インストールして遊んでみるきっかけになれば幸いです。さらなる Ansible チュートリアルにご期待いただくか、このUdemy Mastering Ansible コースもチェックしてください。

「 Ubuntu に Ansible をインストールして構成するにはどうすればよいですか?」についてわかりやすく解説!絶対に観るべきベスト2動画

特定のバージョンの Ansible をインストールするにはどうすればよいですか? Ubuntu への Ansible のインストール
Ubuntu に Ansible をインストールする方法 | Ubuntu EC2 での Ansible のセットアップ | Ubuntu EC2 への Ansible のインストール