第30章 用語集
アドホック
アドホック とは、オーケストレーション言語 (/usr/bin/ansible-playbook
) ではなく、/usr/bin/ansible を使用して Ansible でクイックコマンドを実行することを指します。アドホックコマンドの例としては、インフラストラクチャー内の 50 台のマシンを再起動することが考えられます。アドホックで可能なことは、Playbook に記述して実現できます。Playbook では、他の多くの操作を結合することもできます。
Callback プラグイン
Ansible からの結果をインターセプトし、それに基づいて動作できるユーザー作成のコードを指します。GitHub プロジェクトのいくつかの例では、カスタムログを実行したり、メールを送信したり、効果音を再生したりしています。
コントロールグループ
'cgroups' としても知られるコントロールグループは、Linux カーネルの機能で、リソースをグループ化してプロセスを実行するために割り当てることができます。cgroups は、リソースをプロセスに割り当てるだけでなく、cgroup 内で実行されているすべてのプロセスによるリソースの使用状況をレポートすることもできます。
Check Mode (チェックモード)
--check
オプションを使用して Ansible を実行することを指します。このオプションを使用すると、このフラグなしにこのコマンドを実行した場合に、加えられる可能性のある変更を出力するのみで、リモートシステムには変更が加えられません。これは、他のシステムのいわゆる「ドライラン」モードに似ています。ただし、これには予期しないコマンドの失敗やカスケード効果 (他のシステムの同様のモードにも当てはまります) は考慮されていません。チェックモードは、何が起こるかを把握するために使用しますが、適切なステージング環境の代わりにはなりません。
コンテナーグループ
コンテナーグループは、ジョブが実行される Kubernetes または OpenShift クラスターへの Pod のプロビジョニング設定を指定するインスタンスグループの一種です。これらの Pod はオンデマンドでプロビジョニングされ、Playbook の実行中のみ存在します。
認証情報
Automation Controller がマシンに対してジョブを起動したり、インベントリーソースと同期したり、バージョン管理システムからプロジェクトコンテンツをインポートしたりするために使用できる認証の詳細です。詳細は、[認証情報] を参照してください。
認証情報プラグイン
外部の認証情報タイプ、メタデータフィールド、シークレット管理システムとの対話に必要なコードの定義を含む Python コード
分散ジョブ
ジョブテンプレート、インベントリー、スライスサイズで構成されるジョブ。実行されると、分散されたジョブは、各インベントリーを複数の「スライスサイズ」のチャンクにスライスし、これらをサイズの小さいジョブスライスの実行に使用します。
外部認証情報タイプ
シークレット管理システムとの認証に使用する管理認証情報タイプ
ファクト
ファクトとは、リモートノードに関して検出された情報です。これらは変数と同じように Playbook やテンプレートで使用できますが、ファクトは設定するのではなく推論されます。ファクトは、リモートノードで内部セットアップモジュールを実行することにより、プレイを実行するときに自動的に検出されます。セットアップモジュールを明示的に呼び出す必要はなく、ただ実行されるだけです。必要がない場合は、無効にして時間を節約できます。他の設定管理システムから切り替えるユーザーの利便性を考慮して、ファクトモジュールは、ohai
ツールと facter
ツールがインストールされている場合は、それぞれ Chef と Puppet のファクトライブラリーであるファクトも取り込みます。
Forks
Ansible と Automation Controller はリモートノードと並行して通信します。並列処理のレベルは、ジョブテンプレートの作成または編集中に、--forks
を渡すか、設定ファイルのデフォルトを編集するなど、いくつかの方法で設定できます。デフォルトは、非常に保守的な設定の 5 フォークですが、大量の RAM がある場合は、これを 50 などのより高い値に設定して並列処理を増やすことができます。
Group
セットとして対応可能な Ansible 内の一連のホストを指します。それらの内の多くが単一インベントリーに存在する場合があります。
グループ変数
group_vars/
ファイルは、インベントリーファイルとともにディレクトリーに保存されるファイルで、オプションで各グループにちなんだファイル名が付けられます。このファイルは、特にデータ構造が複雑な場合などに、所定グループに提供される変数を配置できる便利な場所になります。これにより、これらの変数をインベントリーファイルまたは Playbook に埋め込む必要がなくなります。
ハンドラー
ハンドラーは Ansible Playbook の通常のタスクに似ています (タスク を参照) が、タスクに "notify" ディレクティブが含まれており、タスクで変更ありと示している場合にのみ実行されます。たとえば、設定ファイルが変更された場合、設定ファイルのテンプレート操作を参照するタスクがサービス再起動ハンドラーに通知する可能性があります。これは、サービスを再起動する必要がある場合にのみサービスをバウンスできることを意味します。ハンドラーはサービスの再起動以外にも使用できますが、最も一般的な用途はサービスの再起動です。
Host
Automation Controller によって管理されるシステム。物理サーバー、仮想サーバー、クラウドベースのサーバー、またはその他のデバイス (通常はオペレーティングシステムインスタンス) が含まれる場合があります。ホストはインベントリーに含まれます。「ノード」と呼ばれることもあります。
ホスト指定子
Ansible の各プレイは、一連のタスク (システムのロール、目的、または順序を定義する) を一連のシステムにマップします。各プレイの "hosts:" ディレクティブは、しばしばホスト指定子と呼ばれます。1 つのシステム、多数のシステム、1 つ以上のグループ、または 1 つのグループにあり明示的に別のグループにはない複数のホストを選択することができます。
インスタンスグループ
クラスター環境で使用するインスタンスを含むグループ。インスタンスグループは、ポリシーに基づいてインスタンスをグループ化する機能を提供します。
Inventory
ジョブの起動対象となるホストのコレクションです。
インベントリースクリプト
SQL データベース、CMDB ソリューション、LDAP などの外部リソースからホスト、ホストのグループメンバーシップ、および変数情報を検索するプログラム。この概念は Puppet (「外部ノード分類子」と呼ばれる) から採用されており、同様に機能します。
インベントリーソース
現在のインベントリーグループにマージする必要のあるクラウドまたは他のスクリプトに関する情報のことです。グループ、ホストおよびグループやホストに関する変数が自動的に設定されます。
ジョブ
Automation Controller で起動される多くのバックグラウンドタスクの 1 つで、これは通常、Ansible Playbook の起動など、ジョブテンプレートのインスタンス化したものです。他の種類のジョブには、インベントリーのインポート、ソースコントロールからのプロジェクトの同期、管理上のクリーンアップアクションなどがあります。
ジョブの詳細
出力および成功/失敗を含む、特定ジョブの実行履歴のことです。
ジョブスライス
分散ジョブ を参照してください。
ジョブテンプレート
Ansible Playbook とその起動に必要なパラメーターのセットの組み合わせです。詳細は、ジョブテンプレート を参照してください。
JSON
JSON は、JavaScript オブジェクト構文に基づいて構造化データを表すためのテキストベースの形式です。Ansible と Automation Controller は、リモートモジュールからの戻りデータに JSON を使用します。これにより、Python だけでなく任意の言語でモジュールを作成できるようになります。
Mesh
ノードで構成されるネットワークを説明します。ノード間の通信は、TCP、UDP、Unix ソケットなどのプロトコルによってトランスポート層で確立されます。
ノード も参照してください。
メタデータ
認証後に外部システム内のシークレットを見つけるための情報。ユーザーは、外部認証情報をターゲット認証情報フィールドにリンクするときにこの情報を提供します。
ノード
ノードは、インスタンスデータベースモデルのエントリー、または /api/v2/instances/
エンドポイントに対応し、クラスターまたはメッシュに参加するマシンです。統合ジョブ API は、controller_node
と execution_node
フィールドを報告します。実行ノードは、ジョブの実行先で、コントローラーノードはジョブとサーバー機能の間のインターフェイスとなります。
ノードタイプ | 説明 |
---|---|
Control | 永続的なサービスを実行し、ジョブをハイブリッドノードと実行ノードに委任するノード。 |
Hybrid | 永続的なサービスを実行し、ジョブを実行するノード。 |
Hop | メッシュ間の中継のみに使用されます。 |
Execution | コントロールノードから配信されたジョブを実行するノード (ユーザーの Ansible Automation から送信されたジョブ) |
通知テンプレート
名前、説明および定義された設定を持つ通知タイプ (メール、Slack、Webhook など) のことを指します。
通知
メール、Slack、Webhook などの通知には、通知テンプレートで定義された名前、説明、設定があります。たとえば、ジョブが失敗すると、通知テンプレートで定義された設定を使用して通知が送信されます。
Notify (通知)
タスクが変更イベントを登録し、プレイの終了時に別のアクションを実行する必要があることをハンドラータスクに通知する行為。ハンドラーが複数のタスクから通知された場合でも、ハンドラーは 1 回だけ実行されます。ハンドラーは、通知された順序ではなく、リストされている順序で実行されます。
Organization
ユーザー、チーム、プロジェクト、インベントリーの論理的なコレクション。組織はオブジェクト階層の最上位レベルです。
Organization Administrator
組織内で新しいユーザーやプロジェクトを作成するなど、組織のメンバーシップと設定を変更する権限を持つユーザー。Organization Administrator は、組織内の他のユーザーにパーミッションを付与することもできます。
Permissions
プロジェクト、インベントリーや他のオブジェクトの読み取り、変更および管理を実行するためにユーザーおよびチームに割り当てられる権限のセットを指します。
プレイ
最小単位のプレイは、ホスト指定子で選択されるホストのセット (通常はグループで選択されますが、ホスト名 glob で選択されることもある) と、システムが実行するロールを定義するためにホストで実行されるタスク間のマッピングです。Playbook はプレイのリストです。Playbook には 1 つまたは複数のプレイが存在します。
Playbook
Ansible playbook。詳細は、Ansible Playbook を参照してください。
ポリシー
ポリシーは、インスタンスグループがどのように動作し、ジョブがどのように実行されるかを規定します。
プロジェクト
Automation Controller にある Ansible Playbook の論理的コレクションのことです。
ロール
ロールは、Ansible および Automation Controller の組織単位です。ホストのグループ (または一連のグループ、ホストパターンなど) にロールを割り当てると、ホストが特定の動作を実装します。ロールには、変数値、タスク、ハンドラー、またはこれらの組み合わせの適用を含めることができます。ロールに関連付けられたファイル構造により、ロールは再配布可能な単位となり、Playbook 間または他のユーザーと動作を共有できるようになります。
シークレット管理システム
トークン、パスワード、証明書、暗号化キー、他の機密データをセキュアに保存して、これらのデータへのアクセスを制御するサーバーまたはサービス
スケジュール
ジョブが自動的に実行される日時のカレンダーのことを指します。
スライスされたジョブ
分散ジョブ を参照してください。
ソース認証情報
ターゲット認証情報のフィールドにリンクされる外部認証情報
Sudo
Ansible は root ログインを必要とせず、デーモンレスであるため、root レベルのデーモンも必要ありません (これは、機密性の高い環境ではセキュリティー上の問題となる可能性があります)。Ansible は、ログインして sudo
コマンドでラップされた多くの操作を実行でき、パスワードなしの sudo とパスワードベースの sudo の両方で動作します。通常 sudo
では機能しない一部の操作 (scp
ファイル転送など) は、sudo
モードでの実行中に Ansible の copy、template、および fetch モジュールを使用して実行できます。
Superuser
組織に関連付けられているかどうかに関係なく、システム内のオブジェクトを編集するパーミッションを持つサーバーの管理者。スーパーユーザーは組織や他のスーパーユーザーを作成できます。
Survey
ジョブテンプレート上で設定可能な、ジョブ起動時にジョブテンプレートによって尋ねられる質問のことを指します。
ターゲット認証情報
外部認証情報にリンクされている入力フィールドが含まれる外部以外の認証情報
Team
ユーザー、プロジェクト、認証情報、パーミッションが関連付けられた組織の下位部門です。チームは、ロールベースのアクセス制御スキームを実装し、組織全体で責任を委譲する手段を提供します。
ユーザー
パーミッションおよび認証情報が関連付けられたオペレーターのことを指します。
Webhook
Webhook により、アプリケーション間の通信と情報共有が可能になります。これらは、SCM にプッシュされたコミットに応答し、ジョブテンプレートまたはワークフローテンプレートを起動するために使用されます。
ワークフロージョブテンプレート
単一ユニットとして実行するためにリンクされたジョブテンプレート、プロジェクトの同期、およびインベントリーの同期の任意の組み合わせで構成されるセットのことを指します。
YAML
設定ファイルの作成によく使用される人間が判読可能な言語。Ansible と Automation Controller は、YAML を使用して、Playbook 設定言語と変数ファイルを定義します。YAML には最小限の構文があり、非常に簡潔で、一見して判断しやすくなっています。これは設定ファイルや人間にとって優れたデータ形式であるだけでなく、機械でも読み取り可能です。YAML は動的言語コミュニティーで人気があり、この形式には多くの言語でシリアル化に使用できるライブラリーが含まれています。たとえば、Python、Perl、または Ruby が含まれます。