仮想マシンは centos7-02 (Ansible 実行側) と centos7-03 (ターゲット側) の 2 台が作成されるものとする。
参考文献
事前インストール
- サクラエディタと Tera Term をインストールする。
- ただし, UTF-8 + LF を扱えるエディタがあればサクラエディタは不要である。
- また, SSH 鍵を生成するプログラム, 及び, SSH 接続可能なプログラムがあれば, Tera Term も不要である。
- サクラエディタはパッケージ版をインストール後, 個別配布版の sakura.exe で上書きすることを推奨する。
- 2018/02/13 時点で, パッケージ版のバージョンは 2-2-0-1, 個別配布版のバージョンは 2-3-2-0 である。
- ただし, パッケージ版に含まれるキーワードファイルなどは個別配布版に含まれないため, 個別配布版のみのインストールは非推奨である。
初期設定 -> ホスト側ネットワークアドレス確認
- VirtualBox -> Vagrant の順でダウンロード, インストールする。
- ダウンロード時は OS と対応ビットに気を付けること。
- スタート メニュー - Oracle VM VirtualBox (フォルダー) - Oracle VM VirtualBox (ショートカット) をクリックする。
- ファイル - ホストネットワークマネージャー をクリックする。
- IPv4 アドレスの第三オクテットまで:
192.168.xxx.
の部分を確認し, 閉じる ボタンを押下する。- 今回は, 192.168.56. とする。
- ファイル - 終了 をクリックする。
hosts 登録
- スタート メニュー - 設定 をクリックする。
- 個人用設定 ボタンを押下する。
- 左ペインより タスク バー をクリックし, [スタート] ボタンを右クリックするか Windows キー + X キーを押したときに表示されるメニューで, コマンドプロンプトを Windows PowerShell に置き換える を オフ にする。
- そのまま画面を閉じる。
- スタート メニュー を右クリックし, コマンド プロンプト (管理者) をクリックする。
-
> cd drivers\etc
と入力し, 作業ディレクトリーを変更する。 -
> copy hosts hosts.YYYYMMDD
と入力し, hosts をバックアップする。- YYYYMMDD は実際の日付に読み替えること。
-
> notepad hosts
と入力し, 以下のレコードを追記, 保存して閉じる。- IP アドレスが降順となっている理由は, VMware Player を使用していた際の事情である。
hosts192.168.56.120 centos7-08 centos7-08.localdomain 192.168.56.121 centos7-07 centos7-07.localdomain 192.168.56.122 centos7-06 centos7-06.localdomain 192.168.56.123 centos7-05 centos7-05.localdomain 192.168.56.124 centos7-04 centos7-04.localdomain 192.168.56.125 centos7-03 centos7-03.localdomain 192.168.56.126 centos7-02 centos7-02.localdomain 192.168.56.127 centos7-01 centos7-01.localdomain
> exit
と入力し, コマンドプロンプトを閉じる。
SSH 鍵生成 (元ネタ: CentOS 6 向け PortForwarder 設定メモ - Qiita)
- Tera Term の 設定 - SSH 鍵生成 をクリックする。
- TTSSH: 鍵生成 ウィンドウが開く。
- 以下の通り設定し, 生成 ボタンを押下する。
- 鍵の種類: ED25519 にチェックを入れる。
- ラウンド数: (初期値のままで OK.)
-
公開鍵の保存 ボタン, 及び, 秘密鍵の保存 ボタンをそれぞれ押下し, 公開鍵 (id_ed25519.pub), 秘密鍵 (id_ed25519) を保存する。
- 鍵のパスフレーズ 及び パスフレーズの確認 は空欄のままで OK.
- 同様に, コメント欄 は初期値のままで OK.
Vagrant 設定
- Windows キー + R キーを押下し,
%USERPROFILE%
と入力, OK ボタンを押下する。 - 新しいフォルダーを作成し, 名前を
vagrant
とする。 - ★ このリンク ★ をクリックし, Clone or download - Download ZIP をクリック, ファイルをダウンロードする。
- ダウンロードした ZIP ファイルを展開し, フォルダー名を ansible に変更する。
- 先ほどのフォルダーを vagrant フォルダー内に移動させる。
- ansible フォルダー内の Vagrantfile, bootstrap.sh をサクラエディタで開き, IP アドレスを先ほど確認したセグメントに置換する。
- 先ほど保存した公開鍵 (id_ed25519.pub) も開き, 内容をコピー, bootstrap.sh 上部に記載されている PUB_KEY の値を上書きする。
仮想マシン起動
-
スタート メニュー を右クリックし, コマンド プロンプト をクリックする。
- 今度は管理者で ない 方をクリックすること。
-
> cd vagrant\ansible
と入力し, 作業ディレクトリーを変更する。 -
> vagrant up
と入力し, 仮想マシンを起動する。- 初回は CentOS の Box がダウンロードされるため, 結構時間が掛かる。(10 分くらい?)
- しばらく待機し,
target (centos7-03)
の NTP 情報が表示されたあたりでansible (centos7-02)
にもログイン可能となる。 - Tera Term を起動し, centos7-02 に秘密鍵でログインできることを確認する。
- ユーザー名: ansible
Ansible 実行側のみ: SSH 秘密鍵, 設定ファイル設置
- centos7-02 に秘密鍵を SCP する。
- Tera Term にドラッグアンドドロップで OK.
-
$ cd ~/.ssh; pwd
と入力し, 作業ディレクトリーを変更する。 -
$ mv -iv ~/id_ed25519 .
と入力し, 秘密鍵を~/.ssh
ディレクトリーに移動させる。 -
$ echo 'StrictHostKeyChecking no' > config
と入力し, SSH 接続時のホスト鍵を確認しないようにする。 -
$ chmod -v 0400 id_ed25519 config
と入力し, パーミッションを設定する。
Ansible 実行テスト
-
$ cd; pwd
と入力し, 作業ディレクトリーを変更する。 -
$ vi hosts.yml
と入力し, 以下の内容を記載, 保存して閉じる。hosts.yml--- all: children: ansible: hosts: localhost.localdomain: ansible_connection: local targets: hosts: centos7-03.localdomain:
-
$ ansible all -i hosts.yml -m ping
と入力し,pong
と出力されることを確認する。localhost.localdomain | SUCCESS => { "changed": false, "ping": "pong" } centos7-03.localdomain | SUCCESS => { "changed": false, "ping": "pong" }
シャットダウン
-
$ ssh centos7-03 sudo systemctl poweroff
と入力し, centos7-03 をシャットダウンする。 -
$ sudo systemctl poweroff
と入力し, centos7-02 をシャットダウンする。- このタイミングで Tera Term も自動的に閉じる。
- コマンドプロンプトに戻り,
> vagrant status
と入力, いずれの仮想マシンもpoweroff
と出力されることを確認する。 -
> exit
と入力し, コマンドプロンプトを閉じる。
以上。