ansible-galaxyでバージョン指定するとエラーになった
$ ansible --version ansible 1.9.4 configured module search path = None
Ansibleのroleをバージョン指定で使いたかったので、
YAMLファイルに記載して管理しようと。
で、次のように書いて実行するとエラーに・・orz
# requirement.yml(error-ver.) - src: retr0h.logrotate version: 2.0
$ ansible-galaxy install -r requirements.yml -p roles --force - executing: git clone https://github.com/retr0h/ansible-logrotate ansible-logrotate Traceback (most recent call last): File "/usr/local/Cellar/ansible/1.9.4/libexec/bin/ansible-galaxy", line 959, in <module> main() File "/usr/local/Cellar/ansible/1.9.4/libexec/bin/ansible-galaxy", line 953, in main fn(args, options, parser) File "/usr/local/Cellar/ansible/1.9.4/libexec/bin/ansible-galaxy", line 796, in execute_install tmp_file = scm_archive_role(role_scm, role_src, role.get("version"), role.get("name")) File "/usr/local/Cellar/ansible/1.9.4/libexec/bin/ansible-galaxy", line 376, in scm_archive_role print "- executing: %s" % " ".join(archive_cmd) TypeError: sequence item 4: expected string, float found
文字列のところが数値だからダメなんだそうで。
次のように書けば通った。
数値として認識されたんだなー
# requirement.yml(ok-ver.) - src: retr0h.logrotate version: "2.0"
ということで、次のようなものは括らなくても大丈夫。
# requirement.yml(ok-ver.) - src: geerlingguy.composer version: 1.4.0
Ansible Galaxy — Ansible Documentation には書いてないけど、どっかに書いてあるのかな・・