2014年、Ansibleいや、VyOSアドベントカレンダー6日目の記事です。
最近Ansibleの勉強を始めました。AnsibleはPythonで書かれた構成管理ツールです。
Ansibleのことについては、若山史郎さんが入門Ansibleという書籍を出されていて大変参考になるのでオススメです。
VyOSに接続をして設定ファイルを保存するというロールを作ってみたので良ければ使ってみてください。 これを使えばVyOSが動作する複数の機器から、一回で設定を出力して保存することができます。
githubで公開しています。
ansibleのインストール方法については省略します。
まず適当なディレクトリを作って、rolesディレクトリを作ります。その中に、vyos-fetch-config-ansible-roleをクローンします。
mkdir roles
cd roles
git clone https://github.com/hiroyuki-sato/vyos-fetch-config-ansible-role.git vyos
次にplaybookを作成します。ファイル名はvyos_config.ymlという名前にします。
- hosts: all
user: vyos
roles:
- vyos
次にインベントリファイルも作ります。VyOSのサーバのFQDNやIPを書きます。
# VyOS IP or FQDN
10.10.10.10
ディレクトリの構成は次のようになります。設定ファイルはansible-playbookを実行したら作成されます。
サーバ毎に次の二つのファイルが作成されます。
- VyOSのホスト名.config: show configurationの出力
- VyOSのホスト名.gen-sets: show configuration commandsの出力
ansibleを実行したあとのファイル構成は次のようになります。
./configs/192.168.10.142.config # show configの出力
./configs/192.168.10.142.gen-sets # show configuration commandsの出力
./inventory.ini
./vyos/README.md
./vyos/tasks/main.yml
./vyos_config.yml
それでは実行をしてみましょう。
PLAY [all] ********************************************************************
GATHERING FACTS ***************************************************************
ok: [10.10.10.10]
TASK: [vyos | generate current config set] ************************************
changed: [10.10.10.10]
TASK: [vyos | generate current config.] ***************************************
changed: [10.10.10.10]
TASK: [vyos | copy file gen-sets] *********************************************
ok: [10.10.10.10]
TASK: [vyos | copy file] ******************************************************
ok: [10.10.10.10]
TASK: [vyos | delete conf files] **********************************************
changed: [10.10.10.10]
PLAY RECAP ********************************************************************
10.10.10.10 : ok=6 changed=3 unreachable=0 failed=0
configsファイルに、設定ファイルが出力されます。
@stereocatさんがRANCIDでVyatta/VyOSのコンフィグを管理するという記事を書かれています。こちらも参考にしてください。
5日目でkomeiさんがVyOSのバックアップをGitHubとTFTPに自動でアップするという記事を掲載なさっています。こちらも参考にしてください。
ダウンロードだけでなくアップロードをしたいという方もいらっしゃると思います。そのような方は、ahaitoute さんが作られたansible-vyosを使ってみてください。githubで公開されています。
これに私のタスクもマージしてもらってVyOSのためのAnsible集なんてできるといいなと思っています。