プロビジョニングから設定までを一連の流れで行う
新しいホストを設定用 Play に引き渡します。
「プロビジョニングから設定までを一連の流れで行う」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
2 つの役割を 1 つのプレイブックで
プロビジョニングによってサーバーを存在させ、設定によって役立つものにします。この 2 つを 1 つの流れで実行できることに、本当の力があります。🔗
コントロールノードでプロビジョニングする
クラウド作成タスクは AWS API に対してローカルで実行されるため、プロビジョニングのプレイの対象は新しいサーバーではなく localhost になります。
- hosts: localhost
gather_facts: false
tasks:
- amazon.aws.ec2_instance: { name: web-01 }新しいホストを取得する
まだ情報のないサーバーへ SSH 接続することはできません。ec2_instance の結果を register して、新しいパブリック IP を取得します。
- amazon.aws.ec2_instance:
name: web-01
register: ec2メモリ上のインベントリに追加する
add_host モジュールは新しいサーバーを実行中のインベントリに追加します。そのため、後続のプレイで静的ファイルなしに対象を指定できます。
- add_host:
name: "{{ ec2.instances[0].public_ip_address }}"
groups: launchedSSH の準備が整うまで待つ
起動中のインスタンスにはすぐ接続できるとは限りません。wait_for はポート 22 が応答するまで待機してから、接続を試みます。
- wait_for:
host: "{{ ec2.instances[0].public_ip_address }}"
port: 222 つ目のプレイを開始する
ここで、構築したばかりの launched グループを対象とする新しいプレイを開始します。このプレイはクラウドサーバー自体で実行されます。
- hosts: launched
become: true
tasks:
- ping:新しいホストを設定する
ホストをインベントリに追加したら、通常のモジュールに処理を引き継ぎます。他のノードと同じように、パッケージをインストールし、設定をコピーして、サービスを起動できます。
- hosts: launched
tasks:
- package:
name: nginx
state: present正しい SSH ユーザーを渡す
クラウドイメージでは、ubuntu や ec2-user など特定のログイン名を使用します。ansible_user を設定して、設定用プレイが正しく接続できるようにします。
add_host:
name: "{{ ec2.instances[0].public_ip_address }}"
groups: launched
ansible_user: ubuntu1つのファイルで完結
結果は1つのPlaybookです。1つ目のplayでインフラを作成し、2つ目のplayで設定します。1回実行するだけで、動作するサーバーが立ち上がります。
最後まで冪等性を維持
どちらの部分も冪等です。再実行すると既存のインスタンスと一致し、設定も収束するため、フローを安全に繰り返せます。
ホストキーのプロンプトを省略
新しく作成したホストには、未知のSSHキーがあります。起動したグループではhost_key_checkingをオフに設定し、初回接続が停止しないようにします。
add_host:
name: "{{ ec2.instances[0].public_ip_address }}"
groups: launched
ansible_ssh_common_args: "-o StrictHostKeyChecking=no"クイックチェック
EC2インスタンスを起動したところです。静的なインベントリーエントリを追加せずに、次のplayでそのインスタンスを設定したい場合、間をつなぐものは何でしょうか。
まとめ
プロビジョニングと設定を連携しました。localhostで作成し、IPアドレスを登録してadd_hostで追加し、SSHを待ってから、2つ目のplayで設定します。✨
よくある質問
「プロビジョニングから設定までを一連の流れで行う」レッスンは無料ですか?
はい。「プロビジョニングから設定までを一連の流れで行う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「プロビジョニングから設定までを一連の流れで行う」で何を学びますか?
新しいホストを設定用 Play に引き渡します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「プロビジョニングから設定までを一連の流れで行う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cloud Collection と認証
- 宣言的に EC2 インスタンスを起動する
- ネットワーク:VPC、サブネット、Security Group
- プロビジョニングから設定までを一連の流れで行う