カテゴリー「Ansible」の6件の記事

name - task に名前を付ける : Ansible

■概要
task に名前(task 名)を付ける。明示的に task 名を指定していない場合、モジュール名が task
名になる。playbook 内で指定した task 名は playbook の実行時に表示される。

■詳細
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_intro.html#tasks-list

・実行例

  1. [ansibleuser@ansiblesrv ansible]$ cat example02.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - name: open-vm-tools をインストール
  6.       yum:
  7.         name: open-vm-tools
  8.         state: present
  9.     - name: 全パッケージを更新
  10.       yum:
  11.         name: '*'
  12.         state: latest
  13. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example02.yml
  14. PLAY [all] ******************************************************************************************
  15. TASK [Gathering Facts] ******************************************************************************
  16. ok: [node1]
  17. TASK [open-vm-tools をインストール] ************************************************************************
  18. changed: [node1]
  19. TASK [全パッケージを更新] ************************************************************************************
  20. changed: [node1]
  21. PLAY RECAP ******************************************************************************************
  22. node1 : ok=3 changed=2 unreachable=0 failed=0
  23. [ansibleuser@ansiblesrv ansible]$

yum モジュール - yum パッケージマネージャを使用したパッケージ管理 : Ansible

■概要
yum パッケージマネージャを使用してパッケージやグループに対し、
  ・インストール
  ・アップグレード
  ・ダウングレード
  ・アンインストール
  ・一覧の表示
を実行する。

■詳細
https://docs.ansible.com/ansible/latest/modules/yum_module.html

■主なパラメータ
・name
  ・パッケージ名
  ・すべてのパッケージを指定する場合は '*' とする
・state
  ・present インストール
  ・latest 最新版にアップデート
  ・absent アンインストール

■実行例
・ open-vm-tools のインストール
・インストール済みの全パッケージの更新

  1. [ansibleuser@ansiblesrv ansible]$ cat example01.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - yum:
  6.         name: open-vm-tools
  7.         state: present
  8.     - yum:
  9.         name: '*'
  10.         state: latest
  11. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example01.yml
  12. PLAY [all] ******************************************************************************************
  13. TASK [Gathering Facts] ******************************************************************************
  14. ok: [node1]
  15. TASK [yum] ******************************************************************************************
  16. changed: [node1]
  17. TASK [yum] ******************************************************************************************
  18. changed: [node1]
  19. PLAY RECAP ******************************************************************************************
  20. node1 : ok=3 changed=2 unreachable=0 failed=0
  21. [ansibleuser@ansiblesrv ansible]$

Managed Node の事前準備 (Ansible)

■ 設定内容
・open-vm-tools のインストール : yum モジュール
・インストール済みパッケージの更新 : yum モジュール
・Control Machine から Managed Node に接続して作業するユーザーの作成 : user モジュール
・作成したユーザーに sudo 権限を付与 template モジュール
・Control Machine で作成した公開鍵を Managed Node に登録 : authorized_key モジュール
・パスワード認証の禁止 : lineinfile モジュール
・root によるログイン禁止 : replace モジュール
・sshd サービスの再起動 : systemd モジュール

■ inventory ファイル

  1. [ansibleuser@ansiblesrv ansible]$ tree
  2. .
  3. ├── hosts
  4. └── host_vars
  5.        └── node1
  6. 1 directory, 2 files
  7. [ansibleuser@ansiblesrv ansible]$ cat hosts
  8. all:
  9.   hosts:
  10.     node1:
  11. [ansibleuser@ansiblesrv ansible]$ cat host_vars/node1
  12. ansible_host: 192.168.101.11
  13. ansible_user: root
  14. ansible_ssh_pass: root@password
  15. [ansibleuser@ansiblesrv ansible]$


■ yum モジュール
・yum コマンドを実行する
・詳細 https://docs.ansible.com/ansible/latest/modules/yum_module.html
・主なパラメータ
  ・name
    ・パッケージ名
    ・すべてのパッケージを指定する場合は '*' とする
  ・state
    ・present インストール
    ・latest 最新版にアップデート
    ・absent アンインストール
・ open-vm-tools のインストールおよびインストール済みパッケージの更新

  1. [ansibleuser@ansiblesrv ansible]$ cat example01.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - yum:
  6.         name: open-vm-tools
  7.         state: present
  8.     - yum:
  9.         name: '*'
  10.         state: latest
  11. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example01.yml
  12. PLAY [all] ******************************************************************************************
  13. TASK [Gathering Facts] ******************************************************************************
  14. ok: [node1]
  15. TASK [yum] ******************************************************************************************
  16. changed: [node1]
  17. TASK [yum] ******************************************************************************************
  18. changed: [node1]
  19. PLAY RECAP ******************************************************************************************
  20. node1 : ok=3 changed=2 unreachable=0 failed=0
  21. [ansibleuser@ansiblesrv ansible]$


■ name: ・ Task に名前を付ける
・ ansible-playbook コマンドで playbook ファイルを実行したとき、タスク名としてモジュール名
 が使用される
・タスク名に任意の文字列を指定することで、playbook ファイル内のどこが実行されているかわかり
 やすくなる
・タスク名に日本語を使用できる
・実行例

  1. [ansibleuser@ansiblesrv ansible]$ cat example02.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - name: open-vm-tools をインストール
  6.       yum:
  7.         name: open-vm-tools
  8.         state: present
  9.     - name: 全パッケージを更新
  10.       yum:
  11.         name: '*'
  12.         state: latest
  13. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example02.yml
  14. PLAY [all] ******************************************************************************************
  15. TASK [Gathering Facts] ******************************************************************************
  16. ok: [node1]
  17. TASK [open-vm-tools をインストール] ************************************************************************
  18. changed: [node1]
  19. TASK [全パッケージを更新] ************************************************************************************
  20. changed: [node1]
  21. PLAY RECAP ******************************************************************************************
  22. node1 : ok=3 changed=2 unreachable=0 failed=0
  23. [ansibleuser@ansiblesrv ansible]$


■ user モジュール
・ Managed Node にユーザーアカウントを作成/削除する
・詳細 https://docs.ansible.com/ansible/latest/modules/user_module.html
・主なパラメータ
  ・name
    ・ユーザーアカウント名
  ・state
    ・present 作成
    ・absent 削除
・ Control Machine から Managed Node に接続して作業するユーザーの作成
※今回は1名分のアカウントを作成しているが、変数 UserAccount と with_items を使用して複数人
 の場合も対応できるようにしている

  1. [ansibleuser@ansiblesrv ansible]$ cat example03.yml
  2. ---
  3. - hosts: all
  4.   vars:
  5.     UserAccount:
  6.       - ansibleuser
  7.   tasks:
  8.     - name: ユーザーアカウントを作成
  9.       user:
  10.         name: "{{ item }}"
  11.         state: present
  12.       with_items:
  13.         - "{{ UserAccount }}"
  14. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example03.yml
  15. PLAY [all] ******************************************************************************************
  16. TASK [Gathering Facts] ******************************************************************************
  17. ok: [node1]
  18. TASK [ユーザーアカウントを作成] *********************************************************************************
  19. changed: [node1] => (item=ansibleuser)
  20. PLAY RECAP ******************************************************************************************
  21. node1 : ok=2 changed=1 unreachable=0 failed=0
  22. [ansibleuser@ansiblesrv ansible]$


■ template モジュール
・ Managed Node にテンプレートファイルをコピーする
・詳細 https://docs.ansible.com/ansible/latest/modules/template_module.htmll
・主なパラメータ
  ・src
    ・コピー元テンプレート名
    ・相対パス、絶対パスのどちらでも指定可能
    ・jinja2 形式で記述 → ファイル内に変数を埋め込むことが可能
  ・dest
    ・コピー先テンプレート名
    ・絶対パスで指定
・作成したユーザーに sudo 権限を付与

  1. [ansibleuser@ansiblesrv ansible]$ tree
  2. .
  3. ├── example04.yml
  4. ├── hosts
  5. ├── host_vars
  6. │ └── node1
  7. └── template
  8.        └── sudoers.j2
  9. 2 directories, 4 files
  10. [ansibleuser@ansiblesrv ansible]$ cat template/sudoers.j2
  11. {{ item }} ALL=(ALL:ALL) NOPASSWD: ALL
  12. [ansibleuser@ansiblesrv ansible]$ cat example04.yml
  13. ---
  14. - hosts: all
  15.   vars:
  16.     UserAccount:
  17.       - ansibleuser
  18.   tasks:
  19.     - name: sudoを許可するユーザーの設定
  20.       template:
  21.         src: template/sudoers.j2
  22.         dest: /etc/sudoers.d/{{ item }}
  23.       with_items:
  24.         - "{{ UserAccount }}"
  25. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example04.yml
  26. PLAY [all] ******************************************************************************************
  27. TASK [Gathering Facts] ******************************************************************************
  28. ok: [node1]
  29. TASK [sudoを許可するユーザーの設定] *****************************************************************************
  30. changed: [node1] => (item=ansibleuser)
  31. PLAY RECAP ******************************************************************************************
  32. node1 : ok=2 changed=1 unreachable=0 failed=0
  33. [ansibleuser@ansiblesrv ansible]$


■ authorized_key モジュール ・指定したユーザーに公開鍵を登録/削除する
・詳細 https://docs.ansible.com/ansible/latest/modules/authorized_key_module.html
・主なパラメータ
  ・user
    ・対象となるユーザーアカウント
  ・state
    ・present 登録
    ・absent 削除
  ・key
    ・公開鍵ファイルの文字列
・ Control Machine で作成した公開鍵を Managed Node に登録

  1. [ansibleuser@ansiblesrv ansible]$ cat example05.yml
  2. ---
  3. - hosts: all
  4.   vars:
  5.     UserAccount:
  6.       - ansibleuser
  7.   tasks:
  8.     - name: Managed Node に公開鍵を登録
  9.       authorized_key:
  10.         user: "{{ item }}"
  11.         state: present
  12.         key: "{{ lookup('file', '~/.ssh/id_ecdsa.pub') }}"
  13.       with_items:
  14.         - "{{ UserAccount }}"
  15. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example05.yml
  16. PLAY [all] ******************************************************************************************
  17. TASK [Gathering Facts] ******************************************************************************
  18. ok: [node1]
  19. TASK [Managed Node に公開鍵を登録] *************************************************************************
  20. changed: [node1] => (item=ansibleuser)
  21. PLAY RECAP ******************************************************************************************
  22. node1 : ok=2 changed=1 unreachable=0 failed=0
  23. [ansibleuser@ansiblesrv ansible]$


■ lineinfile モジュール
・ファイル内の特定文字列を含む行全体を指定した内容に置換する
・特定文字列を含む行が複数存在する場合は、最後の行が置換対象になる
・詳細 https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html
・主なパラメータ
  ・dest
    ・対象ファイル名
  ・regexp
    ・検索対象文字列
  ・line
    ・置換後の行の内容
・パスワード認証による ssh 接続の禁止

  1. [ansibleuser@ansiblesrv ansible]$ cat example06.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - name: /etc/ssh/sshd_config → パスワード認証の禁止
  6.       lineinfile:
  7.         dest: /etc/ssh/sshd_config
  8.         regexp: "PasswordAuthentication yes"
  9.         line: "PasswordAuthentication no"
  10. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example06.yml
  11. PLAY [all] ******************************************************************************************
  12. TASK [Gathering Facts] ******************************************************************************
  13. ok: [node1]
  14. TASK [/etc/ssh/sshd_config → パスワード認証の禁止] ************************************************************
  15. changed: [node1]
  16. PLAY RECAP ******************************************************************************************
  17. node1 : ok=2 changed=1 unreachable=0 failed=0
  18. [ansibleuser@ansiblesrv ansible]$


■ replace モジュール
・ファイル内の特定文字列を別の文字列に置換する
・特定文字列が複数存在する場合、すべて置換する
・詳細 https://docs.ansible.com/ansible/latest/modules/replace_module.html
・主なパラメータ
  ・dest
    ・対象ファイル名
  ・regexp
    ・置換対象文字列
  ・replace
    ・置換文字列
・ root によるログイン禁止

  1. [ansibleuser@ansiblesrv ansible]$ cat example07.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - name: /etc/ssh/sshd_config → root によるログインを禁止
  6.       replace:
  7.         dest: /etc/ssh/sshd_config
  8.         regexp: "#PermitRootLogin yes"
  9.         replace: "PermitRootLogin no"
  10. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example07.yml
  11. PLAY [all] ******************************************************************************************
  12. TASK [Gathering Facts] ******************************************************************************
  13. ok: [node1]
  14. TASK [/etc/ssh/sshd_config → root によるログインを禁止] *******************************************************
  15. changed: [node1]
  16. PLAY RECAP ******************************************************************************************
  17. node1 : ok=2 changed=1 unreachable=0 failed=0
  18. [ansibleuser@ansiblesrv ansible]$


■ systemd モジュール
・サービスを起動/停止/再起動/リロードする
・詳細 https://docs.ansible.com/ansible/latest/modules/service_module.html
・主なパラメータ
  ・state
    ・started 開始
    ・stopped 停止
    ・restarted 再起動
    ・reloaded リロード
  ・enabled
    ・yes 起動時にサービスを開始する
    ・no 起動時にサービスを開始しない
  ・name
    ・サービス名
・sshd サービスの再起動

  1. [ansibleuser@ansiblesrv ansible]$ cat example08.yml
  2. ---
  3. - hosts: all
  4.   tasks:
  5.     - name: sshd サービスの再起動
  6.       systemd:
  7.         state: restarted
  8.         enabled: yes
  9.         name: sshd
  10. [ansibleuser@ansiblesrv ansible]$ ansible-playbook -i hosts example08.yml
  11. PLAY [all] ******************************************************************************************
  12. TASK [Gathering Facts] ******************************************************************************
  13. ok: [node1]
  14. TASK [sshd サービスの再起動] ********************************************************************************
  15. changed: [node1]
  16. PLAY RECAP ******************************************************************************************
  17. node1 : ok=2 changed=1 unreachable=0 failed=0
  18. [ansibleuser@ansiblesrv ansible]$

inventory ファイル : Ansible

■ inventory ファイル
・ Managed Node に関する情報(IPアドレスやログイン情報 等)を記載したファイル
・ ini 形式または yaml 形式で記述
・詳細 https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

■ ini 形式の記述例

  1. [ansibleuser@ansiblesrv ansible]$ cat hosts.ini
  2. node1 ansible_host=192.168.101.11 ansible_user=root ansible_ssh_pass=root@password
  3. [ansibleuser@ansiblesrv ansible]$


■ yaml 形式の記述例

  1. [ansibleuser@ansiblesrv ansible]$ cat hosts.yml
  2. all:
  3.   hosts:
  4.     node1:
  5.       ansible_host: 192.168.101.11
  6.       ansible_user: root
  7.       ansible_ssh_pass: root@password
  8. [ansibleuser@ansiblesrv ansible]$


■構成要素
・エイリアス名
  ・Ansible 内の Managed Node の呼び名
   → Ansible 内での呼び名なので、Linux の hostname コマンドで表示されるホスト名と
     異なっても良い
  ・上記 hosts ファイル内では“node1”
・ansible_host
  ・ Managed Node のIPアドレスまたは DNS で名前解決ができる場合は名前
・ansible_user
  ・ Managed Node に接続するときのユーザー名
・ansible_ssh_pass
  ・ Managed Node に接続するときのユーザーのパスワード

■ Managed Node ごとの設定情報の切り出し
・“host_vars/エイリアス名”ファイルに、Managed Node の設定情報を切り出すことができる
・ ini 形式の記述例

  1. [ansibleuser@ansiblesrv ansible]$ cat hosts.ini
  2. node1
  3. [ansibleuser@ansiblesrv ansible]$ cat host_vars/node1
  4. ansible_host: 192.168.101.11
  5. ansible_user: root
  6. ansible_ssh_pass: root@password
  7. [ansibleuser@ansiblesrv ansible]$

・ yaml 形式の記述例

  1. [ansibleuser@ansiblesrv ansible]$ cat hosts.yml
  2. all:
  3.   hosts:
  4.     node1:
  5. [ansibleuser@ansiblesrv ansible]$ cat host_vars/node1
  6. ansible_host: 192.168.101.11
  7. ansible_user: root
  8. ansible_ssh_pass: root@password
  9. [ansibleuser@ansiblesrv ansible]$

・ディレクトリ構造

  1. [ansibleuser@ansiblesrv ansible]$ tree
  2. .
  3. ├── hosts.ini
  4. ├── hosts.yml
  5. └── host_vars
  6.     └── node1
  7. 1 directory, 3 files
  8. [ansibleuser@ansiblesrv ansible]$

Control Machine の事前準備 : Ansible

■ 設定内容
・Clinet PC から Control Machine に接続して作業するユーザーの作成
・作業用ディレクトリの作成
・初めて接続したノードの公開鍵受け入れの確認の無視
・公開鍵認証用の公開鍵/秘密鍵の作成

■ Clinet PC から Control Machine に接続して作業するユーザーの作成

  1. [root@ansiblesrv ~]# adduser ansibleuser
  2. [root@ansiblesrv ~]# passwd ansibleuser
  3. Changing password for user ansibleuser.
  4. New password:
  5. Retype new password:
  6. passwd: all authentication tokens updated successfully.
  7. [root@ansiblesrv ~]#


■ 作業用ディレクトリの作成

  1. [ansibleuser@ansiblesrv ~]$ mkdir ~/ansible
  2. [ansibleuser@ansiblesrv ~]$ ls -l
  3. total 0
  4. drwxrwxr-x. 2 ansibleuser ansibleuser 6 Jul 17 22:46 ansible
  5. [ansibleuser@ansiblesrv ~]$


■ 初めて接続したノードの公開鍵受け入れの確認の無視

  1. [ansibleuser@ansiblesrv ~]$ mkdir ~/.ssh
  2. [ansibleuser@ansiblesrv ~]$ chmod 700 ~/.ssh
  3. [ansibleuser@ansiblesrv ~]$ ls -al
  4. total 12
  5. drwx------. 4 ansibleuser ansibleuser 89 Jul 17 22:51 .
  6. drwxr-xr-x. 3 root root 25 Jul 17 22:41 ..
  7. drwxrwxr-x. 2 ansibleuser ansibleuser 6 Jul 17 22:46 ansible
  8. -rw-r--r--. 1 ansibleuser ansibleuser 18 Apr 11 09:53 .bash_logout
  9. -rw-r--r--. 1 ansibleuser ansibleuser 193 Apr 11 09:53 .bash_profile
  10. -rw-r--r--. 1 ansibleuser ansibleuser 231 Apr 11 09:53 .bashrc
  11. drwx------. 2 ansibleuser ansibleuser 6 Jul 17 22:51 .ssh
  12. [ansibleuser@ansiblesrv ~]$ echo "Host *" > ~/.ssh/config
  13. [ansibleuser@ansiblesrv ~]$ echo " StrictHostKeyChecking no" >> ~/.ssh/config
  14. [ansibleuser@ansiblesrv ~]$ echo " UserKnownHostsFile=/dev/null" >> ~/.ssh/config
  15. [ansibleuser@ansiblesrv ~]$ chmod 600 ~/.ssh/config
  16. [ansibleuser@ansiblesrv ~]$ ls -l ~/.ssh
  17. total 4
  18. -rw-------. 1 ansibleuser ansibleuser 63 Jul 17 22:55 config
  19. [ansibleuser@ansiblesrv ~]$ cat ~/.ssh/config
  20. Host *
  21.  StrictHostKeyChecking no
  22.  UserKnownHostsFile=/dev/null
  23. [ansibleuser@ansiblesrv ~]$


■ 公開鍵認証用の公開鍵/秘密鍵の作成

  1. [ansibleuser@ansiblesrv ~]$ ls -l ~/.ssh/
  2. total 4
  3. -rw-------. 1 ansibleuser ansibleuser 63 Jul 17 22:55 config
  4. [ansibleuser@ansiblesrv ~]$ ssh-keygen -t ecdsa -b 521
  5. Generating public/private ecdsa key pair.
  6. Enter file in which to save the key (/home/ansibleuser/.ssh/id_ecdsa):
  7. Enter passphrase (empty for no passphrase):
  8. Enter same passphrase again:
  9. Your identification has been saved in /home/ansibleuser/.ssh/id_ecdsa.
  10. Your public key has been saved in /home/ansibleuser/.ssh/id_ecdsa.pub.
  11. The key fingerprint is:
  12. SHA256:FqNdsG8dlZJs2QjBjwOd0BtlITF3xm5yCel28kZMTp4 ansibleuser@ansiblesrv.exam.local
  13. The key's randomart image is:
  14. +---[ECDSA 521]---+
  15. | o=*B=O+. |
  16. | .o*=X+* |
  17. | +..B.X o |
  18. | o =+.*.E |
  19. | . S oo.O |
  20. | . . o |
  21. | . |
  22. | |
  23. | |
  24. +----[SHA256]-----+
  25. [ansibleuser@ansiblesrv ~]$ ls -l ~/.ssh/
  26. total 12
  27. -rw-------. 1 ansibleuser ansibleuser 63 Jul 17 22:55 config
  28. -rw-------. 1 ansibleuser ansibleuser 365 Jul 17 23:01 id_ecdsa
  29. -rw-r--r--. 1 ansibleuser ansibleuser 287 Jul 17 23:01 id_ecdsa.pub
  30. [ansibleuser@ansiblesrv ~]$ ssh-keygen -l -f ~/.ssh/id_ecdsa.pub
  31. 521 SHA256:FqNdsG8dlZJs2QjBjwOd0BtlITF3xm5yCel28kZMTp4 ansibleuser@ansiblesrv.exam.local (ECDSA)
  32. [ansibleuser@ansiblesrv ~]$

Ansible のインストール ; Ansible

■ 検証環境

■ Control Machine の要件
・ Python 2.6 か 2.7 または 3.5 以上がインストールされていること
・ CentOS7.5(1804) は Pyton 2.7.5 がインストールされているので Ansible だけをインストールする
・ 先に EPELリポジトリを追加すると、最新の Ansible 2.6 がインストール可能になる

■ インストールとバージョン確認

  1. [root@ansiblesrv ~]# yum -y install epel-release
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4.  * base: ftp.tsukuba.wide.ad.jp
  5.  * extras: ftp.tsukuba.wide.ad.jp
  6.  * updates: ftp.tsukuba.wide.ad.jp
  7. Resolving Dependencies
  8. --> Running transaction check
  9. ---> Package epel-release.noarch 0:7-11 will be installed
  10. --> Finished Dependency Resolution
  11. Dependencies Resolved
  12. ========================================================================================================
  13.  Package Arch Version Repository Size
  14. ========================================================================================================
  15. Installing:
  16.  epel-release noarch 7-11 extras 15 k
  17. Transaction Summary
  18. ========================================================================================================
  19. Install 1 Package
  20. Total download size: 15 k
  21. Installed size: 24 k
  22. Downloading packages:
  23. epel-release-7-11.noarch.rpm | 15 kB 00:00:00
  24. Running transaction check
  25. Running transaction test
  26. Transaction test succeeded
  27. Running transaction
  28.   Installing : epel-release-7-11.noarch 1/1
  29.   Verifying : epel-release-7-11.noarch 1/1
  30. Installed:
  31.   epel-release.noarch 0:7-11
  32. Complete!
  33. [root@ansiblesrv ~]# yum -y install ansible
  34. Loaded plugins: fastestmirror
  35. Loading mirror speeds from cached hostfile
  36. epel/x86_64/metalink | 7.8 kB 00:00:00
  37.  * base: ftp.tsukuba.wide.ad.jp
  38.  * epel: ftp.jaist.ac.jp
  39.  * extras: ftp.tsukuba.wide.ad.jp
  40.  * updates: ftp.tsukuba.wide.ad.jp
  41. epel | 3.2 kB 00:00:00
  42. (1/3): epel/x86_64/group_gz | 88 kB 00:00:00
  43. (2/3): epel/x86_64/updateinfo | 929 kB 00:00:00
  44. (3/3): epel/x86_64/primary | 3.5 MB 00:00:00
  45. epel 12609/12609
  46. Resolving Dependencies
  47. --> Running transaction check
  48. ---> Package ansible.noarch 0:2.6.0-1.el7 will be installed
  49. --> Processing Dependency: sshpass for package: ansible-2.6.0-1.el7.noarch
  50. --> Processing Dependency: python2-jmespath for package: ansible-2.6.0-1.el7.noarch
  51. --> Processing Dependency: python-six for package: ansible-2.6.0-1.el7.noarch
  52. --> Processing Dependency: python-setuptools for package: ansible-2.6.0-1.el7.noarch
  53. --> Processing Dependency: python-paramiko for package: ansible-2.6.0-1.el7.noarch
  54. --> Processing Dependency: python-keyczar for package: ansible-2.6.0-1.el7.noarch
  55. --> Processing Dependency: python-jinja2 for package: ansible-2.6.0-1.el7.noarch
  56. --> Processing Dependency: python-httplib2 for package: ansible-2.6.0-1.el7.noarch
  57. --> Processing Dependency: python-crypto for package: ansible-2.6.0-1.el7.noarch
  58. --> Processing Dependency: PyYAML for package: ansible-2.6.0-1.el7.noarch
  59. --> Running transaction check
  60. ---> Package PyYAML.x86_64 0:3.10-11.el7 will be installed
  61. --> Processing Dependency: libyaml-0.so.2()(64bit) for package: PyYAML-3.10-11.el7.x86_64
  62. ---> Package python-httplib2.noarch 0:0.9.2-1.el7 will be installed
  63. ---> Package python-jinja2.noarch 0:2.7.2-2.el7 will be installed
  64. --> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-2.el7.noarch
  65. --> Processing Dependency: python-markupsafe for package: python-jinja2-2.7.2-2.el7.noarch
  66. ---> Package python-keyczar.noarch 0:0.71c-2.el7 will be installed
  67. --> Processing Dependency: python-pyasn1 for package: python-keyczar-0.71c-2.el7.noarch
  68. ---> Package python-paramiko.noarch 0:2.1.1-4.el7 will be installed
  69. --> Processing Dependency: python-cryptography for package: python-paramiko-2.1.1-4.el7.noarch
  70. ---> Package python-setuptools.noarch 0:0.9.8-7.el7 will be installed
  71. --> Processing Dependency: python-backports-ssl_match_hostname for package: python-setuptools-0.9.8-7.el7.noarch
  72. ---> Package python-six.noarch 0:1.9.0-2.el7 will be installed
  73. ---> Package python2-crypto.x86_64 0:2.6.1-15.el7 will be installed
  74. --> Processing Dependency: libtomcrypt.so.0()(64bit) for package: python2-crypto-2.6.1-15.el7.x86_64
  75. ---> Package python2-jmespath.noarch 0:0.9.0-3.el7 will be installed
  76. ---> Package sshpass.x86_64 0:1.06-2.el7 will be installed
  77. --> Running transaction check
  78. ---> Package libtomcrypt.x86_64 0:1.17-26.el7 will be installed
  79. --> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt-1.17-26.el7.x86_64
  80. --> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17-26.el7.x86_64
  81. ---> Package libyaml.x86_64 0:0.1.4-11.el7_0 will be installed
  82. ---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed
  83. ---> Package python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 will be installed
  84. --> Processing Dependency: python-ipaddress for package: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch
  85. --> Processing Dependency: python-backports for package: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch
  86. ---> Package python-markupsafe.x86_64 0:0.11-10.el7 will be installed
  87. ---> Package python2-cryptography.x86_64 0:1.7.2-2.el7 will be installed
  88. --> Processing Dependency: python-idna >= 2.0 for package: python2-cryptography-1.7.2-2.el7.x86_64
  89. --> Processing Dependency: python-cffi >= 1.4.1 for package: python2-cryptography-1.7.2-2.el7.x86_64
  90. --> Processing Dependency: python-enum34 for package: python2-cryptography-1.7.2-2.el7.x86_64
  91. ---> Package python2-pyasn1.noarch 0:0.1.9-7.el7 will be installed
  92. --> Running transaction check
  93. ---> Package libtommath.x86_64 0:0.42.0-6.el7 will be installed
  94. ---> Package python-backports.x86_64 0:1.0-8.el7 will be installed
  95. ---> Package python-cffi.x86_64 0:1.6.0-5.el7 will be installed
  96. --> Processing Dependency: python-pycparser for package: python-cffi-1.6.0-5.el7.x86_64
  97. ---> Package python-enum34.noarch 0:1.0.4-1.el7 will be installed
  98. ---> Package python-idna.noarch 0:2.4-1.el7 will be installed
  99. ---> Package python-ipaddress.noarch 0:1.0.16-2.el7 will be installed
  100. --> Running transaction check
  101. ---> Package python-pycparser.noarch 0:2.14-1.el7 will be installed
  102. --> Processing Dependency: python-ply for package: python-pycparser-2.14-1.el7.noarch
  103. --> Running transaction check
  104. ---> Package python-ply.noarch 0:3.4-11.el7 will be installed
  105. --> Finished Dependency Resolution
  106. Dependencies Resolved
  107. ========================================================================================================
  108.  Package Arch Version Repository Size
  109. ========================================================================================================
  110. Installing:
  111.  ansible noarch 2.6.0-1.el7 epel 10 M
  112. Installing for dependencies:
  113.  PyYAML x86_64 3.10-11.el7 base 153 k
  114.  libtomcrypt x86_64 1.17-26.el7 extras 224 k
  115.  libtommath x86_64 0.42.0-6.el7 extras 36 k
  116.  libyaml x86_64 0.1.4-11.el7_0 base 55 k
  117.  python-babel noarch 0.9.6-8.el7 base 1.4 M
  118.  python-backports x86_64 1.0-8.el7 base 5.8 k
  119.  python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k
  120.  python-cffi x86_64 1.6.0-5.el7 base 218 k
  121.  python-enum34 noarch 1.0.4-1.el7 base 52 k
  122.  python-httplib2 noarch 0.9.2-1.el7 extras 115 k
  123.  python-idna noarch 2.4-1.el7 base 94 k
  124.  python-ipaddress noarch 1.0.16-2.el7 base 34 k
  125.  python-jinja2 noarch 2.7.2-2.el7 base 515 k
  126.  python-keyczar noarch 0.71c-2.el7 epel 218 k
  127.  python-markupsafe x86_64 0.11-10.el7 base 25 k
  128.  python-paramiko noarch 2.1.1-4.el7 extras 268 k
  129.  python-ply noarch 3.4-11.el7 base 123 k
  130.  python-pycparser noarch 2.14-1.el7 base 104 k
  131.  python-setuptools noarch 0.9.8-7.el7 base 397 k
  132.  python-six noarch 1.9.0-2.el7 base 29 k
  133.  python2-crypto x86_64 2.6.1-15.el7 extras 477 k
  134.  python2-cryptography x86_64 1.7.2-2.el7 base 502 k
  135.  python2-jmespath noarch 0.9.0-3.el7 extras 39 k
  136.  python2-pyasn1 noarch 0.1.9-7.el7 base 100 k
  137.  sshpass x86_64 1.06-2.el7 extras 21 k
  138. Transaction Summary
  139. ========================================================================================================
  140. Install 1 Package (+25 Dependent packages)
  141. Total download size: 15 M
  142. Installed size: 74 M
  143. Downloading packages:
  144. (1/26): PyYAML-3.10-11.el7.x86_64.rpm | 153 kB 00:00:00
  145. (2/26): libyaml-0.1.4-11.el7_0.x86_64.rpm | 55 kB 00:00:00
  146. (3/26): libtommath-0.42.0-6.el7.x86_64.rpm | 36 kB 00:00:00
  147. (4/26): libtomcrypt-1.17-26.el7.x86_64.rpm | 224 kB 00:00:00
  148. (5/26): python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm | 13 kB 00:00:00
  149. (6/26): python-enum34-1.0.4-1.el7.noarch.rpm | 52 kB 00:00:00
  150. (7/26): python-babel-0.9.6-8.el7.noarch.rpm | 1.4 MB 00:00:00
  151. (8/26): python-httplib2-0.9.2-1.el7.noarch.rpm | 115 kB 00:00:00
  152. (9/26): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00:00
  153. (10/26): python-idna-2.4-1.el7.noarch.rpm | 94 kB 00:00:00
  154. (11/26): python-cffi-1.6.0-5.el7.x86_64.rpm | 218 kB 00:00:00
  155. (12/26): python-jinja2-2.7.2-2.el7.noarch.rpm | 515 kB 00:00:00
  156. warning: /var/cache/yum/x86_64/7/epel/packages/ansible-2.6.0-1.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
  157. Public key for ansible-2.6.0-1.el7.noarch.rpm is not installed
  158. (13/26): ansible-2.6.0-1.el7.noarch.rpm | 10 MB 00:00:01
  159. (14/26): python-keyczar-0.71c-2.el7.noarch.rpm | 218 kB 00:00:00
  160. (15/26): python-ply-3.4-11.el7.noarch.rpm | 123 kB 00:00:00
  161. (16/26): python-markupsafe-0.11-10.el7.x86_64.rpm | 25 kB 00:00:00
  162. (17/26): python-six-1.9.0-2.el7.noarch.rpm | 29 kB 00:00:00
  163. (18/26): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00:00
  164. (19/26): python-paramiko-2.1.1-4.el7.noarch.rpm | 268 kB 00:00:00
  165. (20/26): python2-jmespath-0.9.0-3.el7.noarch.rpm | 39 kB 00:00:00
  166. (21/26): python2-cryptography-1.7.2-2.el7.x86_64.rpm | 502 kB 00:00:00
  167. (22/26): python2-pyasn1-0.1.9-7.el7.noarch.rpm | 100 kB 00:00:00
  168. (23/26): sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00:00
  169. (24/26): python2-crypto-2.6.1-15.el7.x86_64.rpm | 477 kB 00:00:00
  170. (25/26): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00:06
  171. (26/26): python-pycparser-2.14-1.el7.noarch.rpm | 104 kB 00:00:05
  172. --------------------------------------------------------------------------------------------------------
  173. Total 2.2 MB/s | 15 MB 00:00:06
  174. Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  175. Importing GPG key 0x352C64E5:
  176.  Userid : "Fedora EPEL (7) <epel@fedoraproject.org>"
  177.  Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
  178.  Package : epel-release-7-11.noarch (@extras)
  179.  From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  180. Running transaction check
  181. Running transaction test
  182. Transaction test succeeded
  183. Running transaction
  184.   Installing : python2-pyasn1-0.1.9-7.el7.noarch 1/26
  185.   Installing : python-ipaddress-1.0.16-2.el7.noarch 2/26
  186.   Installing : python-six-1.9.0-2.el7.noarch 3/26
  187.   Installing : python-httplib2-0.9.2-1.el7.noarch 4/26
  188.   Installing : python-enum34-1.0.4-1.el7.noarch 5/26
  189.   Installing : libyaml-0.1.4-11.el7_0.x86_64 6/26
  190.   Installing : PyYAML-3.10-11.el7.x86_64 7/26
  191.   Installing : libtommath-0.42.0-6.el7.x86_64 8/26
  192.   Installing : libtomcrypt-1.17-26.el7.x86_64 9/26
  193.   Installing : python2-crypto-2.6.1-15.el7.x86_64 10/26
  194.   Installing : python-keyczar-0.71c-2.el7.noarch 11/26
  195.   Installing : python-backports-1.0-8.el7.x86_64 12/26
  196.   Installing : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 13/26
  197.   Installing : python-setuptools-0.9.8-7.el7.noarch 14/26
  198.   Installing : python-babel-0.9.6-8.el7.noarch 15/26
  199.   Installing : python-ply-3.4-11.el7.noarch 16/26
  200.   Installing : python-pycparser-2.14-1.el7.noarch 17/26
  201.   Installing : python-cffi-1.6.0-5.el7.x86_64 18/26
  202.   Installing : python-markupsafe-0.11-10.el7.x86_64 19/26
  203.   Installing : python-jinja2-2.7.2-2.el7.noarch 20/26
  204.   Installing : python-idna-2.4-1.el7.noarch 21/26
  205.   Installing : python2-cryptography-1.7.2-2.el7.x86_64 22/26
  206.   Installing : python-paramiko-2.1.1-4.el7.noarch 23/26
  207.   Installing : sshpass-1.06-2.el7.x86_64 24/26
  208.   Installing : python2-jmespath-0.9.0-3.el7.noarch 25/26
  209.   Installing : ansible-2.6.0-1.el7.noarch 26/26
  210.   Verifying : python-keyczar-0.71c-2.el7.noarch 1/26
  211.   Verifying : python-jinja2-2.7.2-2.el7.noarch 2/26
  212.   Verifying : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 3/26
  213.   Verifying : python2-jmespath-0.9.0-3.el7.noarch 4/26
  214.   Verifying : sshpass-1.06-2.el7.x86_64 5/26
  215.   Verifying : python2-cryptography-1.7.2-2.el7.x86_64 6/26
  216.   Verifying : python-setuptools-0.9.8-7.el7.noarch 7/26
  217.   Verifying : python-six-1.9.0-2.el7.noarch 8/26
  218.   Verifying : python-idna-2.4-1.el7.noarch 9/26
  219.   Verifying : python-markupsafe-0.11-10.el7.x86_64 10/26
  220.   Verifying : python-ply-3.4-11.el7.noarch 11/26
  221.   Verifying : python-babel-0.9.6-8.el7.noarch 12/26
  222.   Verifying : python-paramiko-2.1.1-4.el7.noarch 13/26
  223.   Verifying : python-backports-1.0-8.el7.x86_64 14/26
  224.   Verifying : python-cffi-1.6.0-5.el7.x86_64 15/26
  225.   Verifying : libtommath-0.42.0-6.el7.x86_64 16/26
  226.   Verifying : ansible-2.6.0-1.el7.noarch 17/26
  227.   Verifying : python-pycparser-2.14-1.el7.noarch 18/26
  228.   Verifying : libyaml-0.1.4-11.el7_0.x86_64 19/26
  229.   Verifying : python2-crypto-2.6.1-15.el7.x86_64 20/26
  230.   Verifying : python-ipaddress-1.0.16-2.el7.noarch 21/26
  231.   Verifying : python-enum34-1.0.4-1.el7.noarch 22/26
  232.   Verifying : python-httplib2-0.9.2-1.el7.noarch 23/26
  233.   Verifying : python2-pyasn1-0.1.9-7.el7.noarch 24/26
  234.   Verifying : PyYAML-3.10-11.el7.x86_64 25/26
  235.   Verifying : libtomcrypt-1.17-26.el7.x86_64 26/26
  236. Installed:
  237.   ansible.noarch 0:2.6.0-1.el7
  238. Dependency Installed:
  239.   PyYAML.x86_64 0:3.10-11.el7 libtomcrypt.x86_64 0:1.17-26.el7
  240.   libtommath.x86_64 0:0.42.0-6.el7 libyaml.x86_64 0:0.1.4-11.el7_0
  241.   python-babel.noarch 0:0.9.6-8.el7 python-backports.x86_64 0:1.0-8.el7
  242.   python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-cffi.x86_64 0:1.6.0-5.el7
  243.   python-enum34.noarch 0:1.0.4-1.el7 python-httplib2.noarch 0:0.9.2-1.el7
  244.   python-idna.noarch 0:2.4-1.el7 python-ipaddress.noarch 0:1.0.16-2.el7
  245.   python-jinja2.noarch 0:2.7.2-2.el7 python-keyczar.noarch 0:0.71c-2.el7
  246.   python-markupsafe.x86_64 0:0.11-10.el7 python-paramiko.noarch 0:2.1.1-4.el7
  247.   python-ply.noarch 0:3.4-11.el7 python-pycparser.noarch 0:2.14-1.el7
  248.   python-setuptools.noarch 0:0.9.8-7.el7 python-six.noarch 0:1.9.0-2.el7
  249.   python2-crypto.x86_64 0:2.6.1-15.el7 python2-cryptography.x86_64 0:1.7.2-2.el7
  250.   python2-jmespath.noarch 0:0.9.0-3.el7 python2-pyasn1.noarch 0:0.1.9-7.el7
  251.   sshpass.x86_64 0:1.06-2.el7
  252. Complete!
  253. [root@ansiblesrv ~]# ansible --version
  254. ansible 2.6.0
  255.   config file = /etc/ansible/ansible.cfg
  256.   configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  257.   ansible python module location = /usr/lib/python2.7/site-packages/ansible
  258.   executable location = /usr/bin/ansible
  259.   python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
  260. [root@ansiblesrv ~]#