概要
AnsibleでさくらVPSの初期セットアップを自動化します。
環境
- さくらVPS
- CentOS7.3
- Ansible2.2.1.0
前提知識
- さくらVPSをの初期設定の流れを理解していること。
さくらVPSにCentOS7をインストール
さくらVPSのコンソール画面からOSインストール>カスタムOSインストールを選択してCentOS7をインストールしておきます。
インストールが開始されると、CentOS7のインストール用コンソール画面(VNCコンソールのHTML5版かJava Applet版)を開くことができるので、環境に合わせて好きな方を選びます。
CentOS7のインストールでは、言語設定やディスクの初期化など行う必要があります。 rootユーザーのパスワード設定と新規ユーザー作成をする画面がありますが、新規ユーザー作成はAnsibleで行うので、rootユーザーのパスワード設定のみだけでOKです。
次に、公開鍵をansibleホスト側からさくらVPSに送ります。(鍵は事前に作成しておいてください。ここでは割愛します。)
こちらの鍵はAnsibleで新規に作成するユーザー用の鍵です。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@123.45.678.910
ssh root@123.45.678.901でさくらVPSにssh接続できれば準備OKです。
AnsibleでさくらVPSの初期設定をする
hostsファイルを定義
hosts
Playbookを定義
タスク内容はこんな感じです。
- ユーザーを新規作成する
- authorize_keysファイルを作成する
- authorize_keysファイルのパーミッションを調整する
- wheelグループにsudo権限を与える
- rootユーザーでのssh接続を禁止する
- ssh接続のポート番号を変更する
- iptablesのtcpポートを変更する
- sshポートをシャットダウンする
- SELinuxをdisabledに設定する
1点注意点があります。
ssh_user_passwordはopensslで暗号化したものを指定する必要があります。
openssl passwd -salt hoge -1 moge
Playbookは参考サイトを大いに参考にさせて頂きました。m(_ _)m
init.yml
handlerを定義
ハンドラーを定義します。
main.yml
Ansible実行
ansible-playbook sakura.yml -i hosts -k -c paramiko
タスクの実行が全て完了したら、サーバーを一度再起動して完了です。