計算リソースとしての linux サーバーセットアップの自動化に使えそうな ansible playbook です.
ubuntu 20.04
以下のことができます.
- 最低限必要なプログラムのインストールと設定(pyenv など)
- sudo 権限を持つユーザの作成
- 一般ユーザの作成
- ssh 設定(ルートログインの禁止,パスワード認証の無効化,ポート変更)
- 最低限の ufw の設定
- 一般ユーザの作成
はじめに,各種値を設定します.
playbook/root/inventory
を開き,以下の値を設定してください.
"[server]" という文字列の下に記載されている IP アドレスを設定を行うマシンのものに書き換えてください.
[server]
192.168.56.10
次に対象のサーバーにログインするための情報を設定してください.
ansible_port={sshのポート(デフォルト: 22)}
ansible_user={ログインユーザー名}
ansible_ssh_pass={ログインパスワード}
次に,ssh のポート番号を変更してください.
new_ssh_port={変更後のsshポート}
sudo 権限を持つユーザを作成できます.
admin_username={作成するユーザ名}
admin_password={新しいパスワード}
admin_ssh_pubkey={公開鍵のファイル名(`~/.ssh` 以下にあることを想定しています.)}
[TODO] 複数ユーザの作成
一般ユーザを作成する場合も同様に設定してください.
admin_username={作成するユーザ名}
admin_password={新しいパスワード}
admin_ssh_pubkey={公開鍵のファイル名(`~/.ssh` 以下にあることを想定しています.)}
作成する必要がない場合はplaybook/root/playbook.yml
を開き,以下の部分をすべてコメントアウトしてください.
- include_tasks: tasks/20_create_normal_user.yml
vars:
username: "{{ normal_username }}"
password: "{{ normal_password | password_hash('sha512') }}"
ssh_pubkey: "{{ normal_ssh_pubkey }}"
[TODO] 複数ユーザの作成
上記の設定が完了したら,以下のコマンドを実行してください. 実行が完了すると対象のサーバーは再起動されます.
cd playbook/root
ansible-playbook -i playbook/root/inventry playbook/root/playbook.yml