さくらVPS+CentOS7.3+Ansible

概要

AnsibleでさくらVPSの初期セットアップを自動化します。

環境

  • さくらVPS
  • CentOS7.3
  • Ansible2.2.1.0

前提知識

さくら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_passwordopensslで暗号化したものを指定する必要があります。

openssl passwd -salt hoge -1 moge

Playbookは参考サイトを大いに参考にさせて頂きました。m(_ _)m

init.yml

handlerを定義

ハンドラーを定義します。

main.yml

Ansible実行

ansible-playbook sakura.yml -i hosts -k -c paramiko

タスクの実行が全て完了したら、サーバーを一度再起動して完了です。

参考