18 Nov 2014, 22:55

Ansible、コマンドでワイルドカードを使うときの注意

AnsibleのPlaybookを書いていると、ワイルドカードを含んだコマンドを実行したい時がある。
そんなときあるところでハマった。

Apacheをソースインストールして、パスを/usr/sbinにリンクを貼ろうとして以下を実行した。

- command: ln -s /usr/local/httpd/bin/* /usr/sbin

/usr/sbin内に「*」というリンクが貼られてしまった。

* -> /usr/local/httpd/bin 

どうやらcommandモジュールはワイルドカードに対応していないよう。
ワイルドカードを使いたいときはshellモジュールを利用すると良い。

- shell: ln -s /usr/local/httpd/bin/* /usr/sbin

また、*というリンクを消すときは要注意(笑)

$ rm ./* 

とやってしまうとあたりまえだがやばいので

$ rm ./¥* 

こうですね…

このエントリーをはてなブックマークに追加