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 ./¥* 

こうですね…

関連する記事はこちら
  • Ansible、コマンド実行結果をokにする(冪等性を保つ方法) (2015/02/02)
  • Ansible, sudoパスワード要求を忘れただけでめんどくなる (2014/11/28)
  • Ansible、ソースインストールする際のPalybookの書き方 (2014/11/16)
  • AnsibleのTerraform moduleを考察してみる (2019/03/25)
  • Vagrant×Ansible環境の3つのスタイルとそのメリット・デメリットについて (2016/01/25)
  • comments powered by Disqus
    このエントリーをはてなブックマークに追加