雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

Ansibleのelasticsearch_pluginモジュールをElasticSearch5系で使う

Ansible2.0からモジュールが提供されている http://docs.ansible.com/ansible/elasticsearch_plugin_module.html

が、ElasticSearch5系だと動かない。。

TASK [elasticsearch : install elasticsearch plugin] ****************************
failed: [test] (item=analysis-kuromoji) => {"failed": true, "item": "analysis-kuromoji", "msg": "A tool for managing installed elasticsearch plugins\n\nCommands\n--------\nlist - Lists installed elasticsearch plugins\ninstall - Install a plugin\nremove - Removes a plugin from elasticsearch\n\nNon-option arguments:\ncommand              \n\nOption         Description        \n------         -----------        \n-h, --help     show help          \n-s, --silent   show minimal output\n-v, --verbose  show verbose output\nERROR: timeout is not a recognized option\n"}

timeoutオプションがないとのこと。

無効化するオプションもないけど、ソースを見てみるとtimeoutを定義してなければオプションがつかないみたい。

https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/database/misc/elasticsearch_plugin.py#L150-L151

というわけでtimeoutをnullに設定すればいける。

- name: install elasticsearch plugin
  elasticsearch_plugin:
    plugin_bin: /usr/share/elasticsearch/bin/elasticsearch-plugin
    timeout: null
    name: analysis-kuromoji
    state: present