Skip to content

Instantly share code, notes, and snippets.

@hiroyuki-sato
Created December 5, 2014 15:13
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiroyuki-sato/eb42671d707a5954f6b1 to your computer and use it in GitHub Desktop.
Save hiroyuki-sato/eb42671d707a5954f6b1 to your computer and use it in GitHub Desktop.
VyOS アドベントカレンダー 6日目

AnsibleとVyOS

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集なんてできるといいなと思っています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment