📵
オフライン環境構築 Ansible編
概要
オフライン環境で Ansible を構築するための手順。
Ansible は、プロビジョニングのための構成管理ツールである。
詳細は、 プロビジョニングツールの比較 参照。
手順
Ansible は Collection と Role という2つの再利用可能な構成管理単位をもつ。
- Collection
- Role
構成管理単位毎に、オフラインでの使用方法が異なる。
Collection
オンライン端末
オンライン端末で以下の手順を行う。
-
Ansible Galaxy でCollectionを検索する。
-
Download tar ballボタンをクリックしてtar ballをダウンロードする。
オフライン端末
オフライン端末で以下の手順を行う。
-
以下のコマンドを実行してCollectionをインストールする。
# Command $ ansible-galaxy collection install <collection tar ball name> # Example $ ansible-galaxy collection install sindhuparvathi_gopi-ansible_collection_template-1.0.2.tar.gz
Role
Role は、Collectionとは異なりオフライン用のtar ballダウンロード機能がない。
そこで、GitHubからRoleをダウンロードして、tar ballをつくる。
オンライン端末
-
Ansible GalaxyでRoleを検索する。
-
GitHub Repo ボタンから、Roleのリポジトリを表示する。
-
Code ボタンをクリックして、 Download ZIP リンクをクリックし、ソースコードをzip形式でダウンロードする。
オフライン端末
-
zipファイルをtar.gzで圧縮し直す。
# Command $ unzip <zip file name>.zip $ tar czvf <tar file name>.tar.gz <zip file name>/ # Example $ unzip ansible-role-java-master.zip $ tar czvf ansible-role-java-master.tar.gz ansible-role-java-master/
-
requirements.yml
を作成する。requirements.yml
にRoleの名前、バージョンとRoleのtar ballとの対応関係を定義する。requirements.yml# Template - src: ./<tar file name>.tar.gz name: <role name> version: <role version> # Example - src: ./ansible-role-java-master.tar.gz name: "geerlingguy.java" version: "1.10.0"
-
requirements.yml
を使ってRoleをインストールする。ansible-galaxy install -r requirements.yml
Discussion