Ansible Galaxyでロールを公開するためにはGitHubのアカウントが必要です。もしGitHubのアカウントを持っていない場合は、アカウントの作成と、リポジトリへpushができるまで環境設定を行っておいてください。
GitHubを利用可能となったら、まずGitHubにプレイブック公開用の新しいリポジトリを作成します。リポジトリ名の命名は「ansible-role-」という接頭語を付けるのが一般的です。
リポジトリの作成後、作成したリポジトリをcloneし、先ほど作成したロールをリポジトリ直下に移動してpushしてください。ロール名のディレクトリは不要で、tasksなどのディレクトリがリポジトリ直下に置かれるようにしてください。
なお、GitHubで新規にリポジトリを作成した場合にデフォルトのREADME.mdが作成されているかもしれませんがこれは上書きして構いません。
GitHubへのpushが終わった後は、Ansible Galaxyのサインアップ画面からAnsible Galaxyのアカウントを登録します。
GitHubのアカウントと連携させるため、真ん中にあるGitHubの猫アイコンをクリックして登録を進めます。
GitHubに未ログインの場合はGitHubのログイン画面が表示されるのでログインしてください。GitHubにログイン済みの場合、GitHubとAnsible Galaxyを連携してよいかの許可が求められますので、「Authorize application」のボタンをクリックして進めてください。
その後、確認メールが送られてくるため、そこから認証を行えばアカウントの登録は完了です。
登録したアカウントでAnsible Galaxyにログインし、ページ上部のメニューから「MY ROLE」を選択してください。ロールのインポート画面に遷移し、GitHubで作成したリポジトリが自動で表示されるので、公開したいリポジトリの左にあるアイコンをクリックしてください。
以下のようにアイコンがチェックマークとなり、「Succeeded」と表示されれば公開完了です。
もし何らかの問題があり公開に失敗した場合、「Succeeded」ではなく「Failed」と表示されます。Failedの文字をクリックするとインポートの詳細ページに遷移し、エラーの内容を確認できます。例えば、meta/main.ymlの構造が誤っているというエラーの場合は以下のように表示されます。
今回はAnsibleを読みやすく、再利用しやすくするためのファイル分割の方法と、Ansibleの推奨ディレクトリ構成であるロールを紹介しました。1人でプレイブックを作成する場合は単一ファイルにタスクを書いていっても問題ないかもしれませんが、以後他の人がメンテナンスすることも考えて、プレイブックは適切に分割をしておくべきです。
また、Ansible Galaxyというロールを共有するコミュニティも紹介しました。パッケージのインストールなど汎用的な処理を行う必要がある場合は、まずAnsible Galaxyで検索することで不要にプレイブックを作成してしまうことを避けることができるでしょう。
今回まででAnsibleの主要な機能の紹介は一通り終わりましたので、次回は最終回としてAnsibleをWebブラウザから操作できる「Ansible Tower」というツールを紹介します。
2011年より、株式会社ビーブレイクシステムズに在籍。「あるべきものを、あるべき姿に」をモットーに、保守しやすいプログラムを書くため日々まい進中。
Copyright © ITmedia, Inc. All Rights Reserved.