カテゴリー
Linux

【Ansible】【Vagrant】デバッグしながらプレイブックを作るときに使っているテクニック

まとめ

  • debug モジュールを使って状況を出力
  • Vagrantfile で Ansible の実行状況を詳しく出力
  • Vagrant の snapshot 機能を利用
  • Vagrant の provision 機能を利用

具体例。debug モジュールを使って状況を出力

次のようにして、プレイブックが実行されていることを確認しています。ファイルを追加したのはよいけれども、タイポしているのかどうしても実行できずにしょんぼりしたことがしばしばございましたの><。

---
- name: running test
  debug:
    msg: "running"

具体例。Vagrantfile で Ansible の実行状況を詳しく出力

ansible.verbose = "v" を追加することにより、Ansible の実行状況を詳しく知ることができますの。値の v を増やして vv や vvv などとすることでより詳細になるそうですけれども、v のみでも各タスクの実行結果を知ることができ、充分と感じておりますわ♪

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "oki2a24/centos-7-x86_64"
  config.vm.network "private_network", ip: "192.168.56.11"
  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "ansible/site.yml"
    ansible.verbose = "v"
  end
end

Vagrant の snapshot 機能を利用

Vagrant 1.8.2 だったと思うのですけれども、スナップショット機能が追加されました。

これを積極的に使用しております。

そのために、まずは common などの試行錯誤するまでもないタスクを実行し終わってから、スナップショットを作り、失敗したらリストアして戻るようにしております。

時間を節約できますの♪

なお、vagrant restore を実行しますと、プロビジョニングも実行され、プレイブックへの編集を即座に確認できますので、便利ですわ♪

# ac という名前でスナップショットを作成
vagrant snapshot save ac

# スナップショットからリストア(VM シャットダウンし、VM を破棄し、スナップショットから起動し、プロビジョニングを実行)
vagrant snapshot restore ac

Vagrant の provision 機能を利用

タスクを編集後、確認するために、仮想マシン内部から Ansible を実行するのではなく、外から vagrant provision を実行することで行っております。

# Vagrant のプロビジョニングのみを実行
vagrant provision

おわりに

Ansible が大変便利ですの!

活用していきたいのですけれども、効率よく作っていくために気がついたことなどがありますので、忘れぬうちにメモいたしました♪

以上です。

コメントを残す