AnsibleのPlaybookを書くときに便利になるかもしれないansible.elを書いてみた

最近Ansible職人になることが多かったので、マイナーモードを書いてみました。

https://github.com/k1LoW/emacs-ansible

現在MELPAに申請中(&難航中)なので、うまくいけば、M-x package-install ansibleでインストールできるようになります。

そうでない場合はCaskファイルに

(depends-on "ansible" :git "https://github.com/k1LoW/emacs-ansible.git"
            :files ("*.el" "snippets" "dict"))

を追記してください。

使い方

M-x ansibleで有効化できます。もしくはyaml-modeにフックさせて起動させてもいいかもしれません。

(add-hook 'yaml-mode-hook '(lambda () (ansible 1)))

機能

  • helmインターフェースを利用した*.ymlファイルの列挙するhelm-source ( ansible::helm-playbooks-source )
  • yasnippetスニペットによるModuleの記述補助
  • auto-complete用辞書によるModule optionの記述補助

だけです。テスト実行系は個人的嗜好で作っていません。

なかなかModuleを覚えないので「ならEmacsに任せよう」という感じで作りました。

yasnippetとauto-completeを連携させているとなお良いです。補完にModuleの名前ででてくるので。

というわけで

ほんの少しは便利になると思うので、全国のAnsible職人の方はどうぞ。

これなんてデジャヴ??

Serverspecでテストを書くときに便利かもしれないserverspec.elを書いてみた - Copy/Cut/Paste/Hatena

あれ??????

以下、ansible.elの作成の経緯

serverspec.elより先にansible.elでsnippet自動生成が実現

自分はServerspec職人もやりますがAnsible職人もやります。本職はCakePHP職人ですが。

で、serverspec.elを作った際のエントリで

今回、ちまちまと手作業でスニペットなどを作ったのですが、うまくやれば http://serverspec.org やServerspecのリポジトリをクローリングして自動生成ができそうだなーと思っています。

とかのたまっていたのですが、ふとansible/ansible · GitHubを眺めていたら、Moduleのソースコード内に「ドキュメントが」「YAMLで」記述しているわけですよ。

これはアツい!!!!

Ansible Moduleは公式のものだけで既に200を超えており、正直最初から手作業でのスニペット化は諦めていたわけですが、これなら簡単なスクリプトスニペットファイルを自動生成できるな、と。

最初は

とか言っていて、d:id:kiwanami より

というアリガタイ(有り、難い)お言葉をもらいつつ、結局1行づづ行を読んで適当に対応しました。すみません!!!俺にはそこまでのやんちゃなことはできませんでした!!!

世の中のEmacs以外のエディタを駆使しているAnsible職人の方へ

是非スニペットを作るべきかと。ansible.vimとか。ansible.pyとか。

https://github.com/k1LoW/emacs-ansible/blob/master/lib/generate.rb

たったこれだけのやっつけコードでEmacsスニペットがほぼ全モジュール分できました(file moduleはうまくいっていない)。一度作ると楽ですよー。

Fukuoka.rbにて

上のやっつけコードを提出し、モヒカンな方から暇つぶしのマサカリを受ける所存です。 また、ひきつづきserverspec.elのスニペットの自動生成方法を模索します。

以上です。