この記事では、Ubuntu 18.04 LTS に Ansible をインストールして構成するために必要な手順について説明しました。このチュートリアルを続行する前に、sudo 権限を持つユーザーとしてログインしていることを確認してください。このチュートリアルのすべてのコマンドは、root 以外のユーザーとして実行する必要があります。
Ansible は、UNIX のようなオペレーティング システム用の無料でオープンソースの構成および自動化ツールです。これは Python で書かれており、Chef や Puppet に似ていますが、1 つの違いがあり、Ansible の利点は、ノードにエージェントをインストールする必要がないことです。ノードとの通信には SSH を使用します。
この記事では、Ubuntu に Ansible をインストールして構成する方法を示し、その 2 つのノードの管理を試みます。
- Ansible サーバー – ansible.idroot.us (192.168.13.33)
- Ansible クライアント – 192.168.100.120
Ubuntu に Ansible をインストール
ステップ 1. まず、Ubuntu サーバーにパッケージをインストールする前に、すべてのシステム パッケージが更新されていることを確認することを常にお勧めします。
sudo apt update sudo apt upgrade
ステップ 2. Ubuntu に Ansible をインストールします。
最初に ansible リポジトリを有効にする必要があります。次のコマンドでリポジトリをインストールします:
sudo apt-add-repository ppa:ansible/ansible
Ansible リポジトリを追加したら、以下のコマンドを実行してインストールします:
sudo apt update sudo apt install ansible
Ansible が正常にインストールされたら、以下を実行して、インストールされている ansible のバージョンを確認できます。
sudo ansible --version
ステップ 3. ansible サーバーと ansible クライアントの間でパスワードなしの SSH 構成をセットアップします。
ansible サーバーで ssh キーを生成し、このキーを ansible クライアントの公開キーにコピーする必要があります:
[[email protected] ~]# ssh-keygen -t rsa -b 4096 -C "[email protected]" 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:rqAwbwQ8/meilanamaria4D2V0fQ49amw2WKbYIA [email protected] The key's randomart image is: +---[RSA 4096]----+ | .oo.+o | | . =.=.. . | |. E o + X . o | |.o. + + = X . | | .o. + oSX + | | .. o.+ = | |o. o oo.o | | +.. +oo | | .o ... | +----[SHA256]-----+ [[email protected] ~]#
ssh-copy-id コマンドを使用して、公開鍵を ansible サーバーから ansible クライアントにコピーできます。
[[email protected] ~]# ssh-copy-id [email protected] /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /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 [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added. [[email protected] ~]#
[[email protected] ~]# ssh-copy-id [email protected] /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '192.168.43.131 (192.168.43.131)' can't be established. ECDSA key fingerprint is SHA256:OuHrnRxppengenkimpoi5Z+1tOWOF8eYZ5Le5MNwUQ. ECDSA key fingerprint is MD5:78:1c:a5:72:bb:25:fa:c7:67:39:fc:91:b9:fb:b6:20. 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 [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added. [[email protected] ~]# =============================== [[email protected] ~]# ssh [email protected] Last login: Thu Sep 19 16:00:57 2019 from bezafari-c1 [[email protected] ~]# exit logout Connection to 192.168.100.120 closed. [[email protected] ~]#
Ansible サーバーと Ansible クライアントがパスワードレスで動作しているかどうかを確認する必要があります。以下のように確認できます:
[[email protected] ~]# ssh [email protected] Last login: Thu Jan 17 17:00:57 2019 from bezafari-c1 [[email protected] ~]# exit logout Connection to 192.168.100.120 closed. [[email protected] ~]#
ステップ 4. Ansible クライアントを管理するための Ansible サーバー構成。
Ansible サーバー ホスト ファイルを使用して、Ansible サーバーと Ansible クライアントのインベントリを作成できます。ホスト ファイルは、ansible サーバー /etc/ansible/host の次のパスにあります。
[[email protected] ~]# nano /etc/ansible/hosts [test-servers] 192.168.13.33 192.168.100.120
ステップ 5. ansible サーバーから ansible クライアントを管理します。
ping を使用して「test-server」または ansible クライアントの接続を確認します:
[[email protected] ~]# ansible -m ping 'test-servers' 192.168.13.33 | SUCCESS => { "changed": false, "ping": "pong" } 192.168.100.120 | SUCCESS => { "changed": false, "ping": "pong" } [[email protected] ~]#
ansible サーバーから ansible クライアントのアップタイムを確認できます:
[[email protected] ~]# ansible -m command -a "uptime" 'test-servers' 192.168.100.120 | CHANGED | rc=0 >> 16:17:35 up 20 min, 3 users, load average: 0.09, 0.16, 0.29 192.168.13.33 | CHANGED | rc=0 >> 16:17:35 up 22 min, 4 users, load average: 0.18, 0.29, 0.55 [[email protected] ~]#
コマンドの出力をファイルにリダイレクトします。以下のように:
[[email protected] ~]# ansible -m command -a "df -Th" 'test-servers' > /tmp/command-output.txt [[email protected] ~]# cat /tmp/command-output.txt 192.168.13.33 | CHANGED | rc=0 >> Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 13G 5.0G 8.0G 39% / devtmpfs devtmpfs 482M 0 482M 0% /dev tmpfs tmpfs 497M 212K 497M 1% /dev/shm tmpfs tmpfs 497M 7.1M 490M 2% /run tmpfs tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 158M 340M 32% /boot tmpfs tmpfs 100M 16K 100M 1% /run/user/0 192.168.100.120 | CHANGED | rc=0 >> Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 13G 3.9G 9.1G 30% / devtmpfs devtmpfs 906M 0 906M 0% /dev tmpfs tmpfs 921M 84K 920M 1% /dev/shm tmpfs tmpfs 921M 8.7M 912M 1% /run tmpfs tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 157M 341M 32% /boot tmpfs tmpfs 185M 20K 184M 1% /run/user/42 tmpfs tmpfs 185M 0 185M 0% /run/user/0 [[email protected] ~]#
Ubuntu 18.04 に Ansible をインストールするために必要なことはこれだけです。この簡単なヒントがお役に立てば幸いです。質問や提案がある場合は、下にコメントを残してください。