AnsibleでConnectを使う
1Passwordマニュアル|Ansibleでの1Password Connect使用法を解説。モジュールを活用し、効率的なデプロイメントと管理を実現します。
Last updated
1Passwordマニュアル|Ansibleでの1Password Connect使用法を解説。モジュールを活用し、効率的なデプロイメントと管理を実現します。
Last updated
には、 Playbook から 1Password Connect デプロイメントを操Createできるようにするモジュールが含まれています。これらのモジュールは と通信して、Create、読み取り、更新、削除の操Createを通じて 1Password 保管庫とアイテムの管理をサポートします。
1Password Connect Ansible コレクションを使う前に、次の必要条件を満たす必要があります。
をインストールするバージョン 7.x 以降。
をインストールするバージョン 2.14 以降。
をインストールするバージョン3.8以降。
1Password Ansible コレクションの使用を開始するには、次の手順に従ってください。
①
②
③を調べてみましょう。
onepassword.connectAnsible Galaxyからコレクションをインストールします。
$ ansible-galaxy collection install onepassword.connect
INFO
Ansible タスクでonepassword.connectコレクションを使用します。
①collectionsタスクにonepassword.connect追加します。
playbook.yaml
②Ansible タスクのtoken変数またはOP_CONNECT_TOKEN環境変数を通じて Connect サーバー トークンを提供します。この値は各 Ansible タスクで設定する必要があります。
playbook.yaml
③Ansible タスクのhostname変数またはOP_CONNECT_HOST環境変数を通じて、Connect サーバーのホスト名、IP アドレス、または URL を指定します。この値は、各 Ansible タスクで設定する必要があります。
特定のタスクを実行する方法については、次の例を参照してください。
playbook.yaml
注意
更新操Createにより、titleまたはuuidフィールドに一致する項目が完全に置き換えられます。タスク定義で指定していないプロパティはすべて失われます。
データが失われないようにするには、Ansible によってCreateされたアイテムを、Connect サーバーだけがアクセスできるスコープの保管庫にSaveします。
注意
モジュール変数は環境変数よりも優先されます。環境変数を使う場合は、対応するモジュール変数が存在しないことを確認してください。
1Password Ansible コレクションには次のモジュールがあります。
generic_item
このgeneric_itemモジュールを使用して、1Password アイテムをCreate、更新、削除できます。
State is important
状態がpresent(state: present)のときの動作:
モジュールがuuid またはtitle で一致する項目を見つけられない場合は、定義された値を持つ新しい項目をCreateします。
モジュールがサーバー上で一致するアイテムを見つけた場合、古いアイテムをプレイブックの値で定義された新しいアイテムに完全に置き換えます。
状態がabsent(state: absent)のときの動作:
モジュールが uuidまたは titleでアイテムを見つけられない場合、アクションは実行されません。
モジュールがuuidまたは titleに一致する項目を見つけた場合、その項目を削除します。それ以外の場合、アクションは実行されません。
generic_item モジュールを使用して 1Password アイテムをCreateまたは更新すると、1Passwordにフィールドの値を生Createさせることができます。 generate_value には、次の 3 つの設定のいずれかを指定できます。:
generate_value設定
効果
never (デフォルト)
フィールド値を生Createしないでください。代わりにvalueパラメータを使用してください。
on_create
フィールドをCreateするときに値を生Createします。
always
プレイブックが実行されるたびに、フィールドに新しい値を生Createします。valueパラメータを上書きします。
次の例では、on_create 設定を使用し、カスタムの generated_recipe を指定することにより、Random Code フィールドの値 (カスタム レシピを使用) を生Createします。
playbook.yaml
item_info
item_infoモジュールを使用して、1Password アイテム (フィールドやメタデータなど) に関する情報を検索または取得します。
info
アイテムを検索する場合、1Password は最初にuuid(提供されている場合)を検索し、次に titleを検索します。 titleでアイテムを検索する場合、モジュールは大文字と小文字を区別した完全一致クエリを使用します。
field_info
onepassword.connect.field_infoモジュールを使用して、アイテム フィールドの値を取得します。
field_infoモジュールは最初にタイトルまたは UUID でアイテムを検索し、次に要求されたフィールドを名前で検索します。 sectionを指定した場合、モジュールはそのアイテム セクション内でのみ検索します。 セクションを指定しない場合は、フィールド名はアイテム内で一意である必要があります。
1Password Ansible コレクションを使う場合は、次のベスト プラクティスを考慮してください。
1Password Connect と対話するタスクのタスク ログをオフにすることがベスト プラクティスです。 no_log が設定されていない場合、または false に設定されている場合、Ansible は機密情報を出力する可能性があります。
ログ記録をオフにするには、no_log を true に設定します。
1Password Ansible コレクションは、でも利用できます。
、ローカル変数を使用して Connect サーバー トークンを設定するのがです。次の例では、connect_token変数を Connect サーバーのトークン値に設定し、それをtokenフィールドで参照します。
次の例では、使用して1Password アイテムを更新します。また、generate_value設定を に設定しますalways。つまり、プレイブックを実行するたびに 1Password がフィールドに新しい値を生Createします。
次の例では、使用して、名前で 1Password 項目を検索します。
次の例では、使用して1Password アイテム内の特定のフィールドの値を取得します。
使用可能なとの詳細については、次のセクションを参照してください。
全てのは、次の変数定義をサポートしています。Ansible タスクで値を明示的に定義するか、Ansible が環境変数にフォールバックして全てのタスクで同じ値を使うようにすることができます。
generic_item モジュールは stateパターンに従います。
検索方法は、フィールド名を機能とNKFD形状。
Connectサーバートークンなどの機密情報を設定する場合は、 を使うのがベストプラクティスです。通常はプレーンテキストで渡されます。