Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mkr + peco + tmux + ssh

mkr + peco + tmux + ssh

Mackerel Meetup #10 Tokyo

Yuuki Tsubouchi (yuuk1)

April 27, 2017
Tweet

More Decks by Yuuki Tsubouchi (yuuk1)

Other Decks in Programming

Transcript

  1. mkr + peco + tmux + ssh
    ͸ͯͳ id:y_uuki
    Mackerel Meetup #10 Tokyo

    View Slide

  2. αʔϏεɾϩʔϧ໊Λ
    ͠΅Γ͜Έબ୒ͭͭ͠ɺ
    બΜͩϩʔϧͷϗετ܈ʹ
    ಉ࣌ϩάΠϯ

    View Slide

  3. αʔϏεɾϩʔϧ໊Λ
    ͠΅Γ͜Έબ୒ͭͭ͠ɺ
    બΜͩϩʔϧͷϗετ܈ʹ
    ಉ࣌ϩάΠϯ
    5ඵ

    View Slide

  4. http://blog.yuuk.io/entry/tmux-ssh-mackerel

    View Slide

  5. mkr + tmux + ssh

    View Slide

  6. $ mkr hosts
    —service bookmark
    --role proxy

    View Slide

  7. $ mkr hosts
    —service bookmark
    --role proxy
    | jq -rM “.[].name"

    View Slide

  8. tssh = tmux + ssh
    https://github.com/yuuki/opstools/blob/master/tssh

    View Slide

  9. $ tssh $(mkr hosts
    —service bookmark
    --role proxy
    | jq -rM “.[].name")

    View Slide

  10. $ tssh $(roles bookmark proxy)
    (zsh functionԽ)

    View Slide

  11. ͸ͯͳʹ͸ϩʔϧ͕ͨ͘͞Μʂ
    1000+ roles

    View Slide

  12. ϩʔϧ໊֮͑ͯͳ͍໰୊

    View Slide

  13. mkr + peco + tmux + ssh

    View Slide

  14. function peco-mkr-roles() {
    local selected_role=$(mkr services | jq -rM '[.[]
    | .name as $name | .roles // [] | map("\($name) \
    (.)")] | flatten | .[]' | peco)
    if [ -n "${selected_role}" ]; then
    local BUFFER="tssh \`roles "$
    {selected_role}"\`"

    zle clear-screen
    }
    zle -N peco-mkr-roles

    View Slide

  15. $ mkr services
    | jq -rM '[.[] | .name as $name
    | .roles // [] | map("\($name) \(.)")]
    | flatten | .[]'
    | peco

    View Slide

  16. pecoͰ
    ϩʔϧͷ͠΅Γ͜ΈΛ͔͚ͨޙ
    $ tssh $(roles bookmark proxy)
    Λ࣮ߦ

    View Slide

  17. 1. Ctrl + w (೚ҙ)
    2. ϩʔϧҰཡදࣔ
    3. ͠΅Γ͜Έબ୒
    4. tssh࣮ߦ

    View Slide

  18. 1. Ctrl + w (೚ҙ)
    2. ϩʔϧҰཡදࣔ
    3. ͠΅Γ͜Έબ୒
    4. tssh࣮ߦ
    5ඵ

    View Slide

  19. View Slide

  20. Mackerel API

    ͍ͭ΋࢖͍ͬͯΔ
    πʔϧ

    View Slide

  21. Mackerel API

    ͍ͭ΋࢖͍ͬͯΔ
    πʔϧ
    ΤϯδχΞΛ
    ϫΫϫΫͤ͞Δ

    View Slide