0Pricing
DevOps Bootcamp · レッスン

プロビジョニングから設定までを一連の流れで行う

新しいホストを設定用 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: launched

SSH の準備が整うまで待つ

起動中のインスタンスにはすぐ接続できるとは限りません。wait_for はポート 22 が応答するまで待機してから、接続を試みます。

- wait_for:
    host: "{{ ec2.instances[0].public_ip_address }}"
    port: 22

2 つ目のプレイを開始する

ここで、構築したばかりの 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: ubuntu

1つのファイルで完結

結果は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cloud Collection と認証
  2. 宣言的に EC2 インスタンスを起動する
  3. ネットワーク:VPC、サブネット、Security Group
  4. プロビジョニングから設定までを一連の流れで行う
← DevOps Bootcampに戻る