Help us understand the problem. What is going on with this article?

AnsibleをPython2.xからPython3.xに対応させる手順とトラブルシューティング

概要

いよいよPython2.7のサポートが2020.1.1で終了します
このタイミングでAnsibleの実行環境も3.x系に移行いくことになりますので、その手順を残したいと思います

手順

  1. Python3.xをインストール

    • 各プラットフォームにあわせてインストールしてください
    例(Centos)
    > yum install -y python36 python36-pip python36-devel
    
    • pip3が使用できることを確認し、pipをアップグレードします
      pip3ではなく、pip-3.xしかない場合は、以下のupgradeコマンドを実行後にpip3が使用できるようになります
    > pip-3.x install --upgrade pip
    
  2. Python3.xのAnsibleをインストール

    • すでにAnsible利用している場合は、まずはPython2.xのAnsibleを削除し、Python3.xのAnsibleをインストールします
    > pip uninstall ansible
    > pip3 install ansible
    
    • 新規でAnsibleを導入する場合
    > pip3 install ansible
    
  3. バージョン確認
    下記のようにpython version = 3.xになっていることを確認します

    > ansible --version
    
      ansible 2.8.5
        config file = /root/.ansible.cfg
        configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
        ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
        executable location = /usr/local/bin/ansible
        python version = 3.6.8 (default, Aug  2 2019, 17:42:44) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
    
  4. Ansibleが使用するPythonを指定する
    python3はwhereis python3でpython3コマンドの所在で探しておきましょう
    以下の3つの方法があります

    • ansible.cfg[defaults]セクションにinterpreter_python=/usr/bin/python3を設定します
    • 変数ansible_python_interpreter=/usr/bin/python3を設定します
    • 環境変数INTERPRETER_PYTHON=/usr/bin/python3を設定します

  以上の設定を行うとAnsibleが操作するホストもpython3が使用されるようになります
  Ansibleの実行環境のみにPython3を適用したい場合は、host_varsもしくはgroup_varsにlocal.ymlを作成し、ansible_python_interpreter: /usr/bin/python3を設定しましょう

トラブルシューティング

以下のエラーが発生した際の対処法を紹介します
また、下記にないエラー等がございましたら、共有して頂ければ追記します!

AttributeError: module 'enum' has no attribute 'IntFlag'

https://blog.goo.ne.jp/field_light/e/1d6e42b4e9322b5f5546ca89a4e7a7a6

> pip3 uninstall enum34

Ansible TowerとAWX

Python3.x用の仮想環境を作成し、AnsibleやそのほかTower/AWXに必要なモジュールなどをインストールしなければならない
デフォルトのパスは/var/lib/awx/venv/xxx

公式手順と同様に操作していきます

参考

comefigo
自社クラウドサービスの開発・運用をやっています。 ここには日々のアウトプットを残したいと思います。 [Katacoda](https://www.katacoda.com/comefigo7)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした