Ansible Ssh-Copy-Id

Ansible Ssh Copy Id



Ansible は、複数のマシン上での構成とアプリケーションのデプロイメントの管理を簡素化する、無料のオープンソース自動化ツールです。

Ansible は、宣言型言語を使用してシステムの望ましい状態を記述し、その状態を達成するために必要なタスクを自動的に処理します。

Ansible は、ターゲット マシンに接続するためのデフォルトの接続方法として SSH を使用します。 SSH は、Ansible コントロール ノードとターゲット ホスト間に安全で暗号化された通信チャネルを提供します。







通常、ターゲット ホストの SSH キーベースの認証を設定する最も一般的な方法は、ssh-copy-id コマンドです。このコマンドは、コントロール ノードの公開キーをターゲット ホスト上の「authorized_keys」ファイルにコピーします。



ただし、システムを初めて構成する場合は、Playbook でそれを行うために Ansible が必要になる場合があります。ここで Ansible コミュニティが役に立ちます。



Ansible コミュニティでは、パスワードなしの SSH 認証をシステムに許可できる ssh_id_copy ロールにアクセスできます。





このロールは、リモート マシンでの SSH キーのセットアップを処理し、リモート マシンで Ansible インベントリ ファイルを作成できるようにします。その後、リモート マシンに対して任意の Ansible プレイブックをすぐに呼び出すことができます。

Ansible Ssh_Copy_Id ロール

このロールには、Ansible がリモート ホスト上で SSH キーを設定できるようにする変数があります。このような変数には次のものが含まれます。



ホスト名 – 接続先のリモート システム (FQDN または IP) を定義します。

ユーザー名 – リモート システムに接続するためのユーザー名を指定します。

パスワード – リモート システムに接続するためのユーザー名のパスワードを定義します。

ssh_public_key – リモート ホスト上で設定する公開キー ファイルへの絶対パスを定義します。

ポート – SSH ポートを定義します。

Ssh_Copy_Id ロールのインストール

注意: コミュニティ主導のロールとモジュールの有効性とセキュリティを提供することはできません。ロール/モジュールを本番環境や実際のマシンで使用する前に、その動作を監査および検証してください。この投稿で説明されている手順を実行する場合、セキュリティは保証されません。

前述したように、ssh_copy_id は、Ryan によって提供されるコミュニティ提供のロールです。リポジトリへのリンクは次のように提供されます。

https://github.com/ryankwilliams/ansible-ssh-copy-id

これを使用する前に、次のコマンドを実行してインストールされていることを確認する必要があります。

$ アンシブルギャラクシー インストール rywillia.ssh-コピーID

使用例

インストールすると、次のように Playbook でロールを使用できます。

---
- 名前
: リモートマシン上でパスワードなしの SSH 認証を構成する
ホスト
: ローカルホスト
なる
: はい
役割
:
- 役割
: ライアンクウィリアムズ.ssh_copy_id
だれの
:
ホスト名
: 172.168.112.23
ユーザー名
: ubuntu
パスワード
: パスワード
ssh_public_key
: /home/debian12/.ssh/id_rsa.pub
ssh_ポート
: 22

前のサンプル プレイブックでは、ロールを使用して、リモート マシンで定義されているユーザーであるパスワードなしの SSH 認証を設定する方法を示しています。

結論

この入門チュートリアルでは、コミュニティが提供するロールとモジュールを利用して、Ansible Playbook を使用してリモート ホスト上でパスワードなしの SSH 認証を構成する方法を学びました。