ひよこインフラてっく!

ひよこインフラエンジニア「ひよこ大佐」による技術ブログ的なもの。インフラ技術や仮想化、Pythonなど。

【小ネタ】Ansibleでcowsayを有効化/無効化する

この記事は、「Ansible 3 Advent Calendar 2019」12日目の記事です。

どうも、ひよこ大佐です。

本格的な冬が始まる12月、めっきり寒くなっていまい、家から出たくないという方も多いのではないでしょうか。私もあまりの寒さに趣味のロードバイクも全然乗れていません。そんな日には、ブログを書くに限ります。 今回は、役に立ちそうで役に立たない、でもちょっとだけ役に立つAnsibleの小ネタをご紹介します。

皆様は、「cowsay」はご存知でしょうか。こんな感じのかわいい牛の絵文字が表示されます。

$ cowsay "モーーーーー"
 ________
< モーーーーー >
 --------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Ansibleでは、cowsayコマンドが有効な環境では、デフォルトでcowsayによる表示がされます。ですので、cowsayによる表示を有効化したい場合は、cowsayをインストールするだけで有効化されます。

$ ansible-playbook -i hosts test.yml
__________________
< PLAY [localhost] >
 ------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

 ________________________
< TASK [Gathering Facts] >
 ------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

ok: [localhost]
 ______________
< TASK [debug] >
 --------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

ok: [localhost] => {
    "msg": "piyopiyo"
}
 ____________
< PLAY RECAP >
 ------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

「なんじゃこりゃ」と思った方、安心してください。もちろんオフにすることもできます。/etc/ansible/ansible.cfgを見ると、以下のセクションがあります。

don't like cows?  that's unfortunate.
# set to 1 if you don't want cowsay support or export ANSIBLE_NOCOWS=1
#nocows = 1

# set which cowsay stencil you'd like to use by default. When set to 'random',
# a random stencil will be selected for each task. The selection will be filtered
# against the `cow_whitelist` option below.
#cow_selection = default
#cow_selection = random

ここで、nocows = 1を記述することでcowsayによる表示を無効化することができます。ちなみに、 cow_selection = random を有効化すると、こんな感じで牛以外のなにかがランダムに表示されたりします。

[kyagisaw@hiyoko-hadesnuc ~]$ ansible-playbook -i hosts test.yml 
 __________________
< PLAY [localhost] >
 ------------------
  \
   \    (__)               
        o o\               
       ('') \---------     
          \           \    
           |          |\   
           ||---(  )_|| *  
           ||    UU  ||    
           ==        ==    

 ________________________
< TASK [Gathering Facts] >
 ------------------------
  \
   \   \_\_    _/_/
    \      \__/
           (oo)\_______
           (__)\       )\/\
               ||----w |
               ||     ||

ok: [localhost]
 ______________
< TASK [debug] >
 --------------
     \
      \
          oO)-.                       .-(Oo
         /__  _\                     /_  __\
         \  \(  |     ()~()         |  )/  /
          \__|\ |    (-___-)        | /|__/
          '  '--'    ==`-'==        '--'  '

ok: [localhost] => {
    "msg": "piyopiyo"
}
 ____________
< PLAY RECAP >
 ------------
     \
      \
          oO)-.                       .-(Oo
         /__  _\                     /_  __\
         \  \(  |     ()~()         |  )/  /
          \__|\ |    (-___-)        | /|__/
          '  '--'    ==`-'==        '--'  '

localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

正直使いどころはあまり(まったく?)ありませんが、日々の業務に疲れた方はぜひ有効化してみて、かわいい牛さんに癒やされてください。 以上、ちょっとしたAnsibleの小ネタでした。