BranchLifeな感じこの広告は、90日以上更新していないブログに表示しています。Towerでメリークリスマスみなさんメリークリスマス。2016の25日目の記事です。Towerを利用してPlaybookを適用する方法を紹介します。TowerOpenStackOpenStackは、言わずと知れたクラウド基盤管理システムです。オープンな開発コミュニティ、そして全ての機能を外部から管理可能な、オープンなAPIを持っています。このAPIを利用することで、従来のオンプレミスな仮想化基盤では難しかった、CI/CDに代表されるツールチェーンのような仕組みをインフラ分野にも適用することが可能となます。Codeを実現するのに、OpenStackが一役買ってくれるという訳ですね。AnsibleAnsibleは、現代を代表するITオートメーションツールです。コア部分の実体は、単なるコマンドラインツールなのですが、この単純でシンプルな構造が非常に使い勝手が良く、運用の現場での利用が急速に進んでいます。世の中では利点ばかりが強調されがちですが、シンプルであるがゆえに、Ansibleのコア部分が削ぎ落とした機能がいくつかあります。実際に運用していると、サーバのオートスケール時の自動構築や、ツールチェーンに組み込みたい場合、そしてシステム監査のような場面で、以下の3点は、なにか対策があるといいのになぁと思ってりしています。Towerは、Playbookによるジョブ管理システムです。具体的には以下の機能を提供してくれます。TowerとOpenStackの連携方法についてご紹介します。コールバック機能も含めた外部API機能Gitなどのソフトウェア構成管理システム上に置いたPlaybookを利用したジョブ管理機能ジョブ実行ログの集中管理機能ユーザ・グループレベルでの実行権限管理インストール手順は、特に難しということはありません。公式ドキュメントや、@ITのコチラの記事を参照してみてください。Tower起動させると、こんな感じのリッチなWebダッシュボードから操作できるようになります。Towerの管理下にあるPlaybookをジョブとして実行する方法を紹介します。Towerから利用します。main.ymlplaybookで実行するタスク(playbook/web/tasks/main.yml)は、以下の通りです。パッケージ更新後にnginxをインストールし、コンテンツを配置した後で、最後にnginxをリスタートしています。Towerを操作して、実際にOpenStackとの連携をみてみましょう。TowerからOpenStack環境を利用するための設定項目は4つあります。Calendar用に1つプロジェクトを作成します。URLには、GitHub上に配置してあるPlaybookのパスを指定しています。利用するCredentialは2つあります。InventoryからOpenStackのAPIを利用するためのopenstackと、そしてもう1つは、起動したインスタンスにログインしてPlaybookを適用するためのubuntuです。利用するのが常套手段です。Inventory(webservice)を作成しています。Templateを作成します。管理対象ホストからジョブ起動させるトリガーを引けるように、Callbackを許可します。URLに、操作対象ホストからcurlなどでアクセスすることにより、ジョブをキックすることができます。--insecureOpenStack管理下に仮想マシンインスタンスを起動openstackコマンドで、インスタンスを起動させる際に、user-dataとして実行するスクリプト(userdata.sh)は、以下の通りです。[EOF]#実際に、このuser-dataを利用してインスタンスを起動します。\testserver起動時のTowerとの連携は以下の通りです。URLキックするスクリプトを利用しましたが、こちらの記事のように、Heatのテンプレートからも同様にuser-dataに指定することで、操作対象ホストからCallbackでPlaybookをキックできます。オートスケール時の初期設定にも利用できて、さらに便利に使えますね。Towerは、現在のところオープンソースではありません。Hatのポリシーに従って、オープンソース化に向けた努力を続けているそうです。Towerがオープンソースソフトウェアとして広く利用できるに違いない!と期待を込めて、このカレンダー記事を書きました。月別アーカイブはてなブログをはじめよう!pydeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。