検索
連載

Playbookを再利用しやすくするRoleの基本と共有サービスAnsible Galaxyの使い方Ansibleで始めるサーバ作業自動化入門(4)(4/4 ページ)

本連載では、「マニュアルやシェルスクリプトを使ったサーバ管理に課題を持つ方」を対象に、Ansibleの基本的な使い方を紹介。今回は、プレイブックを再利用しやすくするための機能と、「ロール」と呼ばれる推奨ディレクトリ構成、共有サービスAnsible Galaxyの使い方を紹介します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

GitHubにプレイブック公開用の新しいリポジトリを作成

 Ansible Galaxyでロールを公開するためにはGitHubのアカウントが必要です。もしGitHubのアカウントを持っていない場合は、アカウントの作成と、リポジトリへpushができるまで環境設定を行っておいてください。

 GitHubを利用可能となったら、まずGitHubにプレイブック公開用の新しいリポジトリを作成します。リポジトリ名の命名は「ansible-role-」という接頭語を付けるのが一般的です。

 リポジトリの作成後、作成したリポジトリをcloneし、先ほど作成したロールをリポジトリ直下に移動してpushしてください。ロール名のディレクトリは不要で、tasksなどのディレクトリがリポジトリ直下に置かれるようにしてください。

 なお、GitHubで新規にリポジトリを作成した場合にデフォルトのREADME.mdが作成されているかもしれませんがこれは上書きして構いません。

GitHubのアカウントでAnsible Galaxyに登録

 GitHubへのpushが終わった後は、Ansible Galaxyのサインアップ画面からAnsible Galaxyのアカウントを登録します。

 GitHubのアカウントと連携させるため、真ん中にあるGitHubの猫アイコンをクリックして登録を進めます。

 GitHubに未ログインの場合はGitHubのログイン画面が表示されるのでログインしてください。GitHubにログイン済みの場合、GitHubとAnsible Galaxyを連携してよいかの許可が求められますので、「Authorize application」のボタンをクリックして進めてください。

 その後、確認メールが送られてくるため、そこから認証を行えばアカウントの登録は完了です。

Ansible Galaxyでロールを公開

 登録したアカウントでAnsible Galaxyにログインし、ページ上部のメニューから「MY ROLE」を選択してください。ロールのインポート画面に遷移し、GitHubで作成したリポジトリが自動で表示されるので、公開したいリポジトリの左にあるアイコンをクリックしてください。

 以下のようにアイコンがチェックマークとなり、「Succeeded」と表示されれば公開完了です。

 もし何らかの問題があり公開に失敗した場合、「Succeeded」ではなく「Failed」と表示されます。Failedの文字をクリックするとインポートの詳細ページに遷移し、エラーの内容を確認できます。例えば、meta/main.ymlの構造が誤っているというエラーの場合は以下のように表示されます。

次回はAnsibleをWebブラウザから操作できる「Ansible Tower」の紹介

 今回はAnsibleを読みやすく、再利用しやすくするためのファイル分割の方法と、Ansibleの推奨ディレクトリ構成であるロールを紹介しました。1人でプレイブックを作成する場合は単一ファイルにタスクを書いていっても問題ないかもしれませんが、以後他の人がメンテナンスすることも考えて、プレイブックは適切に分割をしておくべきです。

 また、Ansible Galaxyというロールを共有するコミュニティも紹介しました。パッケージのインストールなど汎用的な処理を行う必要がある場合は、まずAnsible Galaxyで検索することで不要にプレイブックを作成してしまうことを避けることができるでしょう。

 今回まででAnsibleの主要な機能の紹介は一通り終わりましたので、次回は最終回としてAnsibleをWebブラウザから操作できる「Ansible Tower」というツールを紹介します。

筆者紹介

今泉 俊幸(いまいずみ としゆき)

2011年より、株式会社ビーブレイクシステムズに在籍。「あるべきものを、あるべき姿に」をモットーに、保守しやすいプログラムを書くため日々まい進中。


前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る