puppetのmanifestを書いていて、我ながらtypo、構文ミスとかヘボいミスが多すぎるので、 vimとgit hooks(pre-commit)とで2重でsyntax checkをするようにした。
具体的なsyntax checkの方法
- vimからはsyntasticを利用してsyntax check
- git hooks(pre-commit)から
puppet parser validate
を利用して、commitのタイミングでsyntax check。問題がある場合はcommitが出来ないようにする
puppetとpuppet-lintの導入
manifestを書いているマシンにpuppetが入っていないとSyntax Checkが出来ないので導入。
またsyntasticがpuppet-lint
を利用するので併せて導入。
私は、最近はmac上でmanifestを書いているのでgemで導入
1 2 |
|
RHEL系でyumの場合は下記のような感じ。
1
|
|
syntasticの導入
私はneobundleを利用しているので、下記を.vimrc
に書いて:NeoBundleInstall
1
|
|
puppetのmanifestを編集して、保存したタイミングでsyntaxのcheckが走る。
エラー部分は:Errors
で表示。
構文がおかしい場合は、下記のように表示される。
これでvimからsyntax checkが出来る。
git pre-commitを用意
Vimだけでも良いんですが、puppetのファイルは全てgitで管理しているので、 git hooksでもcheckが走るようにする。
.git/hooks/pre-commit
に下記のようなファイルを用意
puppetのversionが2.7以下の場合は、puppet parser validate
というコマンドが無いので、下記コマンドを利用するように変更してください。
1
|
|
するとcommitしようとしたタイミングにsyntax checkが走るので、エラーがある場合は下記のようにcommit出来ない。
これでヘボいミスも減って、commit履歴を汚さずに済むはず。