Ansible のインストール : CentOS7.6.1810

2019/02/09

Ansible

 呼び方

 Ansible Documentation では Ansible を実行している機器を Control Machine 、Control Machine に管理される機器を Managed Node と記述しています。 Control Machine 、Managed Node では呼びにくいので、それぞれ「管理サーバー」、「対象ホスト」と呼ぶことにします。

 ToDo

minimal インストールした CentOS 7.6.1810 に以下の作業を行って管理サーバーにします。
  1.  staff グループ(gid : 10000)を作成する
  2.  staff グループに属するユーザーアカウント ansibleman(uid : 10001) を作成する
  3.  ansibleman のパスワードを password@ansiblman にする
  4.  ansibleman はパスワードの入力なしに sudo を可能にする
  5. 管理サーバーから対象ホストに初めて ssh 接続するとき "Are you sure you want to continue connecting (yes/no)?" を聞かれないようにする
  6.  ssh 接続した対象ホストの公開鍵のフィンガープリントを ~/.ssh/known_hosts ファイルに記録しない
  7.  Ansible の playbook ファイルや inventory ファイルを置くディレクトリ ansible を作成
  8.  EPEL リポジトリをインストールする
  9.  Ansible をインストールする
「5. 管理サーバーから・・・」と「6. ssh 接続した・・・」はセキュリティの観点で考えると好ましくありません。しかし、 Ansilble で不特定(素性のわからない)の対象ホストを管理するとは考えられないため「良し」としています。「7. EPEL リポジトリを・・・」をすることで最新の Ansible をインストールできます。

 投入コマンド

CentOS のインストール直後なので、root アカウントで一般ユーザーのアカウント作成から行います。
  1.  groupadd -g 10000 staff
  2.  useradd -G staff -u 10001 ansibleman
  3.  passwd ansibleman
    • password@ansibleman
  4.  visudo -f /etc/sudoers.d/ansibleman
    • ansibleman ALL=(ALL:ALL) NOPASSWD: ALL
一般ユーザーのアカウントと作成後は、作成したアカウントで作業します。 root アカウントからログアウト後にアカウント ansibleman でログインし、作業を継続します。
  1.  mkdir ~/.ssh
  2.  chmod 700 ~/.ssh
  3.  vi ~/.ssh/config
    • Host *
    •   StrictHostKeyChecking no
    •   UserKnownHostsFile=/dev/null
  4.  chmod 600 ~/.ssh/config
  5.  mkdir ~/ansible
  6.  sudo yum -y install epel-release
  7.  sudo yum -y install ansible
  8.  ansible --version

 作業ログ

 root アカウントの作業ログです。単純なパスワード(password@ansibleman)を設定したため、警告が表示されています。
[root@ansiblesv ~]# groupadd -g 10000 staff
[root@ansiblesv ~]# useradd -G staff -u 10001 ansibleman
[root@ansiblesv ~]# passwd ansibleman
Changing password for user ansibleman.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ansiblesv ~]# visudo -f /etc/sudoers.d/ansibleman
-- INSERT --
ansibleman ALL=(ALL:ALL) NOPASSWD: ALL
[root@ansiblesv ~]# logout[root@ansiblesv ~]# groupadd -g 10000 staff
[root@ansiblesv ~]# useradd -G staff -u 10001 ansibleman
[root@ansiblesv ~]# passwd ansibleman
Changing password for user ansibleman.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ansiblesv ~]# visudo -f /etc/sudoers.d/ansibleman
-- INSERT --
ansibleman ALL=(ALL:ALL) NOPASSWD: ALL
[root@ansiblesv ~]# logout
アカウント ansibleman の作業ログです。実行日である 2019/02/26 には Ansible 2.7.8 がインストールされました。
[ansibleman@ansiblesv ~]$ mkdir ~/.ssh
[ansibleman@ansiblesv ~]$ chmod 700 ~/.ssh
[ansibleman@ansiblesv ~]$ vi ~/.ssh/config
-- INSERT --
Host *
  StrictHostKeyChecking no
  UserKnownHostsFile=/dev/null
[ansibleman@ansiblesv ~]$ chmod 600 ~/.ssh/config
[ansibleman@ansiblesv ~]$ mkdir ~/ansible
[ansibleman@ansiblesv ~]$ sudo yum -y install epel-release
Loaded plugins: fastestmirror
(中略)
Complete!
[ansibleman@ansiblesv ~]$ sudo yum -y install ansible
Loaded plugins: fastestmirror
(中略)
Complete!
[ansibleman@ansiblesv ~]$ ansible --version
ansible 2.7.8
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ansibleman/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
[ansibleman@ansiblesv ~]$

 更新履歴

2019/02/17 Ansible 2.7.7 用に更新
2019/02/26 Ansible 2.7.8 用に更新
2019/05/12 記事のタイトルを「Ansible のインストール : CentOS7.6.1810」に変更

カテゴリー

目次

QooQ