Ansibleはcowsayがインストールされている場合、cowsayを介してログを出力する仕様になっている。
しかし、cowsayがデフォルトで入っているLinux Mintでは否が応でも大量の牛を見ることに…。
Linux Mintでpackageリソースが動かないからとAnsibleへ移行した。
(原因はItamaeではなく内部で使ってるspecinfraにある気がする)
幸い、roleがcookbookと似ており、移行もそれほど苦労せずに済んだ。
Fedora用のplaybookがあらかた完成したので、
今度はLinux Mint用のものを、と思ってAnsibleを動かしてみたのだが、
何やら動作がおかしい。
PLAY [localhost] ************************************************************** GATHERING FACTS *************************************************************** ok: [localhost]
↓
__________________ < PLAY [localhost] > ------------------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || _________________ < GATHERING FACTS > ----------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
最初はLinux Mint向けのパッケージが特殊な仕様になっていると思い、
pipを使って入れなおしてみたが何も変わらず。
疲れたので原因探求をやめ、
「そういえば、Itamaeの記事で同じアスキーアート見たなー」と思って、
なんとなくでItamaeの記事を読み返してみると、
どうやらcowsayというツールを使うことで牛のアスキーアートを出力できるようだった。
http://qiita.com/tbpgr/items/b47510b01db8697f94c1
とりあえず「Ansible cowsay」でググった。
まさかAnsibleのような真面目なプロダクトでそんなことあるわけ…
と思っていたら本当にcowsayが原因だった。びっくりした><
なにか変な夢でも見てるんだろうと思ったが夢ではなかった。
https://github.com/shkumagai/ansible-doc-ja/blob/master/playbooks2.rst#id26
Linux Mintではcowsayがデフォルトで入っている。
そのため、牛が出ないようにするには、
export ANSIBLE_NOCOWS=1
bashrcなりzshrcなりに↑のように書くか、
http://docs.ansible.com/faq.html#how-do-i-disable-cowsay
[defaults] nocows = 1
ansible.cfgに↑のように書くか、
https://support.ansible.com/hc/en-us/articles/201957877-How-do-I-disable-cowsay-
cowsayを削除するかすればいいようだ(やりかたは色々ある)
Ansibleを開発している方々は、
「slやcowsayのようなジョークコマンドがシステムに最初から入ることはない。入れる人は分かっててやっているだろう。」
と踏んでいたのかもしれないが、Linux Mintの場合はそうでない…。
Mintがおかしい
cowsayを削除したらターミナルを起動する度に「bash /usr/bin/mint-fortune: そのようなファイルやディレクトリはありません」と表示されるようになったので、 確かに何かおかしい気はする…。...