setuptoolsのコマンドを定義したり、Ansibleのタスク化してみたり、他にもやり方はあると思う。自分には一回入力+シェルでのコマンド履歴検索というのが一番手軽に感じたのでしばらくはこれでいこうかと。
ansible_role_oneliner
$ (role=common; mkdir -p $role; cd $role && for d in templates files; do mkdir -p $d && touch $d/.gitkeep; done; for d in tasks handlers vars defaults meta; do mkdir -p $d && touch $d/main.yml; done)
追記
横の人が「処理の共通化ぐらいしろボケ」って言いつつ、書き直してくれました。
ansible_role_oneliner2
$ (role=common; mkdir -p $role; cd $role && mk() { mkdir -p $1; touch $1/$2; }; for d in templates files; do mk $d .gitkeep; done; for d in tasks handlers vars defaults meta; do mk $d main.yml; done)
こちらはeval使ってもうちょい短くしたバージョン。本人曰く「処理が分かりにくくなるからevalはやめた方がいいかもな」とのこと。
ansible_role_oneliner_eval
$ (role=common; mkdir -p $role; cd $role && mk() { mkdir -p `eval echo $1`; touch `eval echo $1/$2`; }; mk "{templates,files}" .gitkeep; mk "{tasks,handlers,vars,defaults,meta}" main.yml)
さらに追記
ansible-galaxy init
という手があるらしい...
http://qiita.com/tumf/items/546a578cb05237ec8356#comment-0c3b2388fc5531c8dcd7
.gitkeep
までは作ってくれないから(震え
ということで、これとこれを組み合わせてこうじゃ!
ansilbe_role_oneliner3
$ (role=roles/common; ansible-galaxy init $role && for d in templates files; do touch $role/$d/.gitkeep; done)