コンテンツにスキップ

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 <モジュール名>