logo header
logo header
logo header
logo header
  • 2016.01.18
  • 技術ブログ

Ansible 2.0で過去のPlaybookやRolesは使えるのか試してみた

年も明けて、ぼちぼちとRaspberry Piを触り始めたtacckです。
こんにちは。
Linuxが割と普通に動き、また、多くの先人の知恵もあり、かなりお手軽にセンサー類を扱うことができますね。

さて、Raspberry Piの話題といきたいところですが、今回はAnsible 2.0リリースということで、過去にブログで記載した記事のうち、2件のPlaybookについて2.0でも正しく動くように修正を行ないたいと思います。

その1

まずは、
PackerとAnsibleで作るDockerイメージ
から確認しましょう。

ファイル

ファイルは、以前と変わらない構成です。

この中から、修正したファイルと修正点をピックアップして説明していきます。
(上記、背景色の違う行が修正対象ファイルです。)

Vagrantfile

Ansibleのバージョンアップとは直接関係ありませんが、Vagrantの設定ファイルも少し修正しておきます。
これは、Boxのイメージ指定をHashiCorpBox提供サービスを利用するように変えたものです。
こちらの方が自分で直接Boxを追加する手間も省けますし、イメージ自体のバージョンアップに追随したりしやすいので、お勧めです。

provision.yml

6,7,31行目は、Packerのバージョンアップと、それに伴って変更されたダウンロードURLの調整です。

Ansible 2.0向けの変更点は、2行目の「become」というところです。
これは、以前は「sudo」としていたものです。
意味は基本的には変わらず、Ansibleの接続ユーザと作業ユーザの切り替え指定です。
「sudo」はそのまま"sudo"コマンドの意味でしたが、「become」は別途オプション「become_method」で切り替えコマンドを指定可能です。
(※正確には1.9での変更ですが、今回の2.0向け検証としています。)

ちなみに、非推奨としてメッセージはでますが、引き続き「sudo」も利用可能です。
こちらのPlaybookでは、Ansible 2.0向け、という意味ではほぼ修正不要でした。

その2

続いて、
RolesでAnsibleのPlaybookを整理してみよう
を確認しましょう。
(余談ですが、CheckiOレベルは4のままです。)

ファイル

こちらも、ファイル構成は以前と変わりません。

この中から、修正したファイルと修正点をピックアップして説明していきます。
(上記、背景色の違う行が修正対象ファイルです。)

Vagrantfile

これも、Boxのイメージ指定をHashiCorpBox提供サービスを利用するように変えたものです。

roles/check-httpd/tasks/main.yml

これは、上記でVagrant Boxが変わった影響で、追加のパッケージインストールが必要となったものです。
なので、これも特にAnsible 2.0に変わったことの影響は無しです。

vagrant.yml

こちらも、「その1」と同じく「sudo」を「become」へ変更しただけです。
Rolesについても、特に大きな変更なく利用することができました。

まとめ

以上、簡単なPlaybookであれば、実質修正無しでもそのまま使えることが確認できました。

そういえば、過去にDockerを取り上げた記事では、Dockerのコンテナ構築にAnsibleを使っていませんでした。
Ansible 2.0でDocker関連の機能強化が行われたようなので、次回はAnsibleでDockerコンテナを構築する所を取り上げてみたいと思います。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!