sshd
Ansible
CentOS6

Ansibleでsshの待受ポートを変える

Ansibleでsshの待受ポートを変える際にハマった点についての備忘録



環境

作業機
OS: Mac OSX El Capitan
Ansible: 2.4.2.0

操作対象サーバ
OS: CentOS6.9 minimal
rootバス: password
sshdポートの変更先: 2222


要点

  • sshdのポートいじったあとにファイアウォール設定をする
  • 再起動する際にNICが自動起動するようにする
  • 変更した後の対象サーバへの接続は変わった後のポートを使う

ソースコード

https://github.com/q-fukutomo/ansible_sshd


下準備

操作対象サーバ側
NIC確認

# ls /etc/sysconfig/network-scripts/ | grep ifcfg

DSC_0022.JPG
今回は有線接続で進めるため、eth0を使う。

NIC立ち上げ/ローカルIP確認

# ifup eth0
# ifconfig

DSC_0023.JPG

ローカルIPは192.168.1.7らしい。

ここまで得られた値はMac側から接続する際に使う値なので、適宜ソースのhostsファイルとchange_sshd_port.ymlのvarsで定義している変数の値を修正。


playbookとインベントリファイルの作成

記述するタスク
* sshd_configのバックアップと編集
* iptablesのバックアップと編集
* NICのコンフィグファイルのバックアップと編集
* 捜査対象サーバの再起動
* 再起動待機
*
記述はソース参照。
※ 再起動以降はAnsibleで接続するホストのポートが変わるため、再起動後にもセットアップが続く場合は、その前後でそれぞれ定義しておくといい感じになる。


実行

Mac側

$ sudo ansible-playbook -i hosts change_sshd_port.yml

スクリーンショット 2017-12-23 2.00.42.jpg

事故発生。

症状と対応
https://qiita.com/usk81/items/f629f780eba18d5bfdf5#%E5%8E%9F%E5%9B%A0

sshpass導入後、リトライ
スクリーンショット 2017-12-23 2.01.01.jpg

再び事故発生。

症状と対応
http://sankakuvalidator.hatenablog.com/entry/ansible-role-gitbucket
うまいことAnsibleから解決できる方法があったらしい。(操作対象サーバ上で直接yumから入れた後に気付いた顔)

3度目の正直
スクリーンショット 2017-12-23 3.49.35.jpg

ポート変更後用のhosts設定でのテスト
スクリーンショット 2017-12-23 3.50.06.jpg

い い 感 じ に な っ た 。:smile: :smile: :smile: