ホストのプロビジョニング・堅牢化・初期設定
新しいサーバーを基準状態に整えます。
「ホストのプロビジョニング・堅牢化・初期設定」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
何もないサーバーから基準状態へ
新しいホストは何も設定されていない状態です。common ロールによって、アプリコードを配置する前に、すべてのサーバーを安全で一貫した基準状態に整えます。🛠️
パッケージキャッシュを更新する
まずパッケージ情報を更新し、最新のバージョンを使ってインストールできるようにします。apt モジュールなら、1つの冪等なタスクでキャッシュを更新できます。
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600基本パッケージをインストールする
ループを使って、curl、vim、ufw など、すべてのホストに必要なツールを、読みやすい1つのタスクでインストールします。
- name: Base packages
ansible.builtin.apt:
name:
- curl
- ufw
- fail2ban
state: presentデプロイ用ユーザーを作成する
アプリ関連の作業をrootで実行してはいけません。user モジュールで専用のデプロイ用アカウントを作成し、以後そのアカウントにアプリケーションを所有させます。
- name: Create deploy user
ansible.builtin.user:
name: deploy
groups: sudo
shell: /bin/bashSSHキーを配置する
authorized_key を使ってデプロイ用ユーザーにキーベースのログインを許可し、以後の実行でパスワードなしに接続できるようにします。
- name: Add deploy key
ansible.posix.authorized_key:
user: deploy
key: "{{ deploy_pubkey }}"SSHを堅牢化する
デーモンを堅牢化し、rootログインとパスワード認証を無効にします。lineinfile モジュールを使えば、sshd_config を安全かつ冪等に編集できます。
- ansible.builtin.lineinfile:
path: /etc/ssh/sshd_config
regexp: "^PermitRootLogin"
line: "PermitRootLogin no"
notify: Restart sshd必要なポートだけを開く
ufw でファイアウォールを設定します。SSHとアプリのポートだけを許可し、それ以外を拒否します。デフォルトでは公開範囲を最小限にします。
- community.general.ufw:
rule: allow
port: "22"
proto: tcpタイムゾーンとNTPを設定する
ログや証明書にとって、時刻が揃っていることは重要です。タイムゾーンを設定し、時刻同期を有効にして、すべてのホストの現在時刻を一致させます。
- community.general.timezone:
name: UTCHandlerにする
notify と handler を組み合わせ、設定が変更された場合にだけsshdを再起動します。毎回の実行で再起動してはいけません。
handlers:
- name: Restart sshd
ansible.builtin.service:
name: sshd
state: restarted冪等に実行する
common ロールを2回実行してみましょう。2回目は changed ではなく、ほとんどが ok と報告されます。これで基準状態が本当に収束したことを確認できます。
アプリの前に基準状態を整える
先に堅牢化しておけば、既知の安全なホストにアプリをデプロイできます。ブートストラップは、他のすべての土台となる基盤です。🔒
確認問題
SSH設定の編集をきれいに保つ方法を1つ確認しましょう。
まとめ
パッケージ、デプロイ用ユーザー、SSHキー、堅牢化したsshd、ファイアウォール、時刻同期からなる基準状態を、すべて冪等に構築しました。✅
よくある質問
「ホストのプロビジョニング・堅牢化・初期設定」レッスンは無料ですか?
はい。「ホストのプロビジョニング・堅牢化・初期設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「ホストのプロビジョニング・堅牢化・初期設定」で何を学びますか?
新しいサーバーを基準状態に整えます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ホストのプロビジョニング・堅牢化・初期設定」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロジェクトを設計する:Role と Inventory
- ホストのプロビジョニング・堅牢化・初期設定
- Load Balancer 配下でのローリングデプロイ
- Smoke Test、ロールバック、通知