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

sudo_pip_installするときはよく考えて!/sudo_pip_install_ansible

4e7f712e4bba241f579d3dc0eaf130d4?s=47 mito
July 20, 2021

 sudo_pip_installするときはよく考えて!/sudo_pip_install_ansible

4e7f712e4bba241f579d3dc0eaf130d4?s=128

mito

July 20, 2021
Tweet

Transcript

  1. 気軽にsudo pip3 install ansibleを実行して、 Ansible Towerでエラーが起きた話 2021/07/20 株式会社エーピーコミュニケーションズ ネットワーク事業部 ACT(Automation

    Collabo Team) 伊藤雅人 @mizuto1217
  2. 発表内容 2 今回は、以下の2本立てです。 ◼ sudo pip3 install ansible して、 さっきまで動いていたジョブテンプレートがおかしくなった!

    ◼ (上記の10分後)sudo pip3 install ansible-lintして 、 さっきまで動いていたジョブテンプレートがおかしくなった! ※Ansible Automation Platform 2.0なら、同じことはやらかせない??
  3. Ansible Towerのインストール状態と実行するPlaybookについて 3 その前に

  4. Ansible Towerのインストール状態 ◼ バンドル版を使ったので、 同時にAnsibleも入ります ◼ pipで入れるわけではないので、 ansibleは表示されません 4

  5. 実行する Playbook 5 ◼ Demo Project、Demo Job Templateで 使用されている Playbook

    です ◼ hosts を localhost に変えています
  6. sudo pip3 install ansible==2.9.20 しました! 6 バージョンを合わせるために、

  7. sudo pip3 install ansible==2.9.20 しました! ◼ はい、動きません失敗しました。 エラーが起きる前に、明らかに何かしました。 7

  8. sudo pip3 install ansible==2.9.20 しました! ◼ 対処方法は、素直に pip uninstall ansible

    を実行することです。 ◼ そして、 virtualenv を利用してください。 8
  9. sudo pip3 install ansible-lintをしました! 9 (その10分後) バージョンだけではなく、それ以外の開発環境を整えなくては。 ansibleじゃなくて ansible-lintだし? virtualenv

    の手順があやふやだから、とりあえず sudo pip3 install ansible-lint をしよう。
  10. sudo pip3 install ansible-lintをしました!しました! 10 ◼ はい、失敗しました。 エラーが起きる前に、明らかに何かしました。

  11. sudo pip3 install ansible-lintをしました!しました! 11 ◼ ansible-lintの4系を指定すると、以下のパッケージが同時に入ります。 # pip3 freeze

    | grep ansible* ansible==4.2.0 ansible-core==2.11.2 ansible-lint==4.0.0 ◼ ansible-lintの5系は ansibleが入りません。 そのため、ansible-lint は動きません。
  12. sudo pip3 install ansible-lintをしました!しました! ◼ 対処方法は、素直に pip uninstall ansible (ansible-core、

    ansible-lint)を 実行することです。 ◼ そして、 virtualenv を利用してください。 12
  13. やらかしのまとめ 13

  14. やらかしのまとめ 14 ◼ 気軽に sudo pip3 install ansible を実行しない(システムワイドに install

    しない) 他の ansible のバージョンを試す際には、 Python の仮想環境を構築できる virtualenv を利用しましょう ◼ 最新バージョンを試す際には、最新だからといって省略せず、 バージョンを指定しましょう ◼ ansible2.9.20の追加例 # mkdir -p /opt/ansible2.9.20 # python -m venv /opt/ansible2.9.20 # source /opt/ansible2.9.20/bin/activate # pip install --upgrade pip # pip install "ansible==2.9.20"