Ansible Galaxy@Ansible¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. Ansible Galaxyとは¶
role
ディレクトリ配下をモジュールとして別リポジトリに切り分け、これをリモート参照する仕組みのこと。
02. セットアップ¶
参照されるモジュール側¶
▼ ディレクトリ構成¶
meta
ディレクトリ配下に、モジュールを宣言する設定ファイルを配置する。
repository/
├── roles
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ │
▼ main.yml¶
meta
ディレクトリ配下のmain.yml
ファイルモジュールであることを宣言する。
galaxy_info:
author: foo
description: common role
min_ansible_version: "1.0.0"
galaxy_tags: []
dependencies: []
参照する側¶
▼ ディレクトリ構成¶
meta
ディレクトリ配下に、モジュールを宣言する設定ファイルを配置する。
repository/
├── roles
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ │
│ └── requirements.yml
│
└── playbook.yml
▼ requirements.yml¶
リモート参照するリポジトリのURLを設定する。
- name: foo
src: https://github.com/hiroki-hasegawa/foo-ansible-module.git
version: main
▼ playbook.yml¶
playbook.yml
ファイルでモジュール名を設定する。
- hosts: all
become: "true"
roles:
- foo
コマンド¶
Ansibleのコントロールノードでansible-galaxy
コマンドを実行することにより、管理対象ノードの~/.ansible/roles
ディレクトリ配下にモジュールをインストールする。
$ ansible-galaxy install <モジュール名>