Playbookを再利用しやすくするRoleの基本と共有サービスAnsible Galaxyの使い方:Ansibleで始めるサーバ作業自動化入門(4)(4/4 ページ)
本連載では、「マニュアルやシェルスクリプトを使ったサーバ管理に課題を持つ方」を対象に、Ansibleの基本的な使い方を紹介。今回は、プレイブックを再利用しやすくするための機能と、「ロール」と呼ばれる推奨ディレクトリ構成、共有サービスAnsible Galaxyの使い方を紹介します。
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.
関連記事
- インフラ自動化ツール「Ansible 2.0」が正式版がリリース
インフラ自動化ツール「Ansible」がメジャーバージョンアップ。リファクタリングによるアーキテクチャの整理に加え、Block文や動的なIncludeなどの新機能が含まれています。 - 「Puppet Enterprise」と「Red Hat Satellite」の連携が実現。一方、レッドハットは「Ansible」を買収へ
Puppet EnterpriseとRed Hat Satelliteが連携可能に。一方、米レッドハットはPuppetの競合とされるAnsibleの買収を発表し、自社ソリューションへの取り込みを表明した。 - レッドハットのホワイトハーストCEOに、OpenStack、Ceph、Ansibleについて聞いた
レッドハットは11月4日、東京都内でRed Hat forum 2015を開催した。来日した米レッドハットのCEO、ジム・ホワイトハースト氏は、プレス向けの説明会で同社の戦略を説明するとともに質問を受け付けた。筆者は、同社にとってのOpenStackの戦略的な意味、およびCephのInktank、Ansibleを買収した狙いについて聞いた。