我在Atom中使用Ansible Playbook自动补完插件进行了一次尝试

每次写Playbook时,我都感到很痛苦,因为我不得不每次打开官方文档。所以,我想要一个好用的助手,可以使用Ansible的Python API动态获取信息。但是,我发现没有这样的工具,所以我决定自己动手做一个。一开始它完全是为了我个人使用而创建的,但是它非常实用,所以我决定将其公开。

公开的网址

https://atom.io/packages/autocomplete-ansible 可提供自动补全 Ansible 的 Atom 插件。
https://github.com/h-hirokawa/atom-autocomplete-ansible 是一个用于 Atom 的 Ansible 自动补全插件的存储库。

必要的环境

    • Ansible 2.0 以上がインストール済み

autocomplete-plusが有効化されたAtomエディタ(デフォルト状態のはず)

安装步骤

$ apm install autocomplete-ansible

或者,您可以从Atom GUI上的Install Packages中选择安装。

在安装Ansible时使用Homebrew的注意事项。

如果您在OS X上使用Homebrew进行安装,由于Python无法直接引用Ansible,因此在启动Atom之前,请设置环境变量PYTHONPATH,如下所示。

$ export PYTHONPATH="/usr/local/Cellar/ansible/2.1.0.0/libexec/lib/python2.7/site-packages:/usr/local/Cellar/ansible/2.1.0.0/libexec/vendor/lib/python2.7/site-packages:$PYTHONPATH"
$ atom

2.1.0.0的部分会根据安装的Ansible版本而不同。
此外,/usr/local/bin/ansible中还写有实际启动Ansible时设置的PYTHONPATH的值。

顺便说一下,在下一次更新中,我们计划可以从插件设置中添加PYTHONPATH。

功能

    • 各種ディレクティブ名、モジュール名の自動補完

モジュール名の補完候補表示には公式ドキュメントへのリンク付き

with_ と打つとループ用のLookupプラグイン名も補完される

モジュールの引数を補完するスニペット

モジュール名 + r: 必須引数だけを展開
モジュール名 + o: オプション含めて全ての引数を展開

目前还没有任何选项设置或项目。

正在做的事情

从Atom中执行简单的Python脚本,该脚本会获取Ansible模块文档和指令信息,并以JSON格式输出。通过使用autocomplete-plus的Provider API进行字符串匹配和处理。

执着

    • ディレクティブの補完はYAMLのキーを入力している時のみ有効

 

    • モジュール名の補完が有効になるのは、上記に加えてキーが action/local_action の時

 

    • モジュール名がキーの時も action/local_action がキーの時もスニペットがいい感じに動く

action/local_action 時は、引数を args: ブロック内に展開する

commandモジュールなどの名前なし引数も正しく扱える

顺便说一下,模块参数不是以连接字符串的形式传递,而是以字典的形式展开。

待办事项

    • PythonインタープリタのパスとPYTHONPATHの設定くらいはできるようにする

 

    • テスト書く

 

    • モジュール・ブロック内で個別にモジュール引数を自動補完できるようにする

 

    そのうち変数の補完も対応したい

请将错误报告、意见和需求发送至GitHub的issues!

广告
将在 10 秒后关闭
bannerAds