Ansibleを使用してリモートサーバーを構成する場合、Gitリポジトリからファイルを取得する必要がある場合があります。これは、パブリックリポジトリからのソフトウェアパッケージまたはプライベートリポジトリ上の構成ファイルである可能性があります。
Ansibleを使用してリモートでgitリポジトリのクローンを作成するには、このようなエントリをPlaybookに追加できます。
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
心配しないで。これらのパラメータの意味と、サンプルチュートリアルでその方法を説明します。
インベントリやプレイブックなどのAnsibleの基本に既に精通していると思います。そうでない場合は、Ansibleチュートリアルシリーズに従うことができます。
ローカルマシンにAnsibleがインストールされている必要があります。このAnsibleインスタンスは、すべてのリモートホストのコントロールノードとして機能します。コントロールノードを使用して、指定したリモートマシンで実行するプレイブックとタスクを作成できます。
このチュートリアルに従うことを選択した場合は、次のことを確認してください。
- 1つの制御ノードと1つのリモートホスト。
- SSHキーペア。制御ノードの公開鍵は、リモートホストのauthorized_keysファイルで使用可能である必要があります。
-
sudo
を持つroot以外のユーザー リモートホストの特権。 - 複製されたリポジトリの内容を保存するために、リモートホスト上のディレクトリへのアクセスを書き込みます。
先に進む前に、Ansibleインベントリを設定する必要があります。 Ansibleインベントリは、Ansibleで管理するリモートサーバーに関する情報を含むファイルです。
デフォルトでは、ファイルは/etc/ansible/hosts
にあります 。このファイルが終了しない場合は、手動で作成してください。
このファイルにリモートホストのIPアドレスを追加します:
vim /etc/ansible/hosts
次のようになります:

ファイルを保存します。
Ansibleプレイブックを使用したGitリポジトリのクローン作成
インベントリファイルを構成し、コントロールノードからリモートホストにアクセスするためのSSHキーを設定したので、AnsiblePlaybookを作成できます。
Vimなどのテキストエディタを使用してYAMLファイルを作成します。
vim clone.yaml
ファイルを編集して、次のエントリを追加します。
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
上記のプレイブックでは、新しいタスクを定義することから始め、「CloneaGitHubrepository」という名前を付けました。
次に、git
を使用しています SQLiteGitHubリポジトリへのリンクを指定するモジュール。
次に、複製されたリポジトリの宛先の定義に進みます。これは、リモートマシンのローカルディレクトリです。
属性cloneをyesに設定して、リポジトリのクローンを作成し、update属性を使用してリポジトリを更新します。
プレイブックを実行するには、次のコマンドを使用します:
ansible-playbook clone.yaml
SSH認証が原因でプレイブックが失敗した場合は、-uフラグを使用してユーザー名を次のように指定できます。
ansible-playbook -u debian clone.yaml
タスクが実行されたら、指定されたディレクトリにリポジトリのクローンを作成する必要があります。
リモートホストにログインして、リポジトリが正しく複製されたことを確認できます。

これにより、Ansibleを使用してGitリポジトリのクローンを作成することについて適切なアイデアが得られるはずです。この情報があれば、要件に基づいてAnsibleでGitリポジトリを使用できるようになります。
ご質問やご提案がございましたら、下にコメントを残してください。