masablog

Keep it simple, stupid

ansible を快適にするコマンドを作る

tech

ansible を使っていてめんどうなこと


  1. playbook を作っているときしょっちゅうコマンドをたたいてめんどくさい
  2. コマンドが終わるまで待っているのがめんどくさい
  3. エラーがでないか見張っているのがめんどくさい

これらをめんどくさくないようにしないと ansible を使うのがめんどくさいのでなんとかしたい。

まずいちいち ansible-playbook がある github ディレクトリに移動するのがめんどうなので
どこからコマンドを叩いてもいいようにした。
ansible が終わったらもといたディレクトリに勝手に戻るようにした。
peco で適応する playbook を選択できるようにした。
ansible-peco コマンドをたたくのもめんどうなので C-x a で起動するようにした

ansible が終了すると通知が来るようにしたので他の作業がしやすくなった。
通知はクリックするまで消えないので見逃すことはない。

ansible が error をはくとすぐに通知されるので見張ってなくてよくなった。

.zshrc


.zshrc に以下を書いておく
local repositoryname=‘ansible-vps’
ここに ansible のリポジトリ名を設定するだけ
mac は notify-send がないので適当に書き換えてね。

function peco-ansible() {
local repositoryname='ansible-vps'
ghq root && cat ~/.config/hub | grep user && cd $(ghq root)/github.com/$(cat ~/.config/hub | grep user | awk '{print $3}')/${repositoryname}
if [ $? = 0 ]; then
local selected_yml=$(ls | grep .yml$ | peco)
if [ -n "$selected_yml" ]; then
    ansible-playbook ${selected_yml}
    if [ $? = 0 ]; then
    notify-send -u critical 'Ansible' 'Your playbook execution ended' -i utilities-terminal
    else
    notify-send -u critical 'Ansible' 'Error has occured' -i dialog-error
    fi
fi
cd -
fi
}
zle -N peco-ansible
bindkey '^xa' peco-ansible

install


ghq と hub と peco と ansible が必要なのでインストールしておく。

sudo pacman -S hub ansible
yaourt ghq
yaourt peco

~/.gitconfig を

[ghq]
    root = ~/src

GOPATH を

export GOPATH=$HOME
export PATH="$PATH:$GOPATH/bin"

としておくと go の src と github を ghq で一緒くたにできるので便利

mkdir tekitou
cd tekitou
git init .
hub create

を一回実行すると認証があるので済ませると
~/.config/hub に oauth_token ができるので以降は自動的にできるようになる
tekitou リポジトリができてしまうので github で消しておく

11 Feb 2017 #zsh #ansible #linux #Archlinux

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