てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible/AWX] デフォルトで利用されている venv 環境のパッケージ一覧の調べ方

はじめに

AWX では、デフォルトの Python 環境として /var/lib/awx/venv/ansible が利用されています。

以前から不思議だったのですが、コマンドライン版の Ansible では 2.8 から、ネットワーク機器への接続に別途 paramiko をインストールする必要があるのですが、AWX では最初から入ってるようです。

/var/lib/awx/venv/ansible の環境にはどのような Python パッケージが入ってるのか、調べる方法を調べたのでまとめます。

  • 動作確認環境
    • AWX 10.0

awx_web コンテナ内を調べる

AWX は、さくっとインストールをすると docker-compose で起動します。

docker ps はこんな感じです。

$ sudo docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                  NAMES
d24c84953696        ansible/awx_task:10.0.0   "/tini -- /bin/sh -c…"   4 days ago          Up 5 hours          8052/tcp               awx_task
0af150cc5e53        ansible/awx_web:10.0.0    "/tini -- /bin/sh -c…"   4 days ago          Up 5 hours          0.0.0.0:80->8052/tcp   awx_web
9417f6e7f6a1        redis                     "docker-entrypoint.s…"   4 days ago          Up 5 hours          6379/tcp               awx_redis
45e13c7a7c17        memcached:alpine          "docker-entrypoint.s…"   4 days ago          Up 5 hours          11211/tcp              awx_memcached
4cd1b1537087        postgres:10               "docker-entrypoint.s…"   4 days ago          Up 5 hours          5432/tcp               awx_postgres

このなかの、コンテナ awx_web/var/lib/awx/venv/ansible の環境を持っています。

なので、以下のコマンドで pip freeze するとパッケージ一覧が表示されます。

$ sudo docker exec awx_web /var/lib/awx/venv/ansible/bin/pip freeze

(もしかしたら awx_task のほうなんでしょうか・・?)

実行例

ansible はもちろん、ネットワーク機器への接続に必要な paramikoncclientjson_query フィルターが内部的に利用する jmespath が含まれていることが分かります。 azure-*boto3pyvmomipywinrm もありますね。

$ sudo docker exec  awx_web /var/lib/awx/venv/ansible/bin/pip freeze
adal==1.2.2
ansible==2.9.5
apache-libcloud==2.5.0
appdirs==1.4.3
applicationinsights==0.11.9
argcomplete==1.10.3
asn1crypto==0.24.0
azure-cli-core==2.0.35
azure-cli-nspkg==3.0.2
azure-common==1.1.11
azure-graphrbac==0.40.0
azure-keyvault==1.0.0a1
azure-mgmt-authorization==0.51.1
azure-mgmt-automation==0.1.1
azure-mgmt-batch==5.0.1
azure-mgmt-cdn==3.0.0
azure-mgmt-compute==4.4.0
azure-mgmt-containerinstance==1.4.0
azure-mgmt-containerregistry==2.0.0
azure-mgmt-containerservice==4.4.0
azure-mgmt-cosmosdb==0.5.2
azure-mgmt-devtestlabs==3.0.0
azure-mgmt-dns==2.1.0
azure-mgmt-hdinsight==0.1.0
azure-mgmt-iothub==0.7.0
azure-mgmt-keyvault==1.1.0
azure-mgmt-loganalytics==0.2.0
azure-mgmt-marketplaceordering==0.1.0
azure-mgmt-monitor==0.5.2
azure-mgmt-network==2.3.0
azure-mgmt-nspkg==3.0.2
azure-mgmt-rdbms==1.4.1
azure-mgmt-redis==5.0.0
azure-mgmt-resource==2.1.0
azure-mgmt-servicebus==0.5.3
azure-mgmt-sql==0.10.0
azure-mgmt-storage==3.1.0
azure-mgmt-trafficmanager==0.50.0
azure-mgmt-web==0.41.0
azure-nspkg==2.0.0
azure-storage==0.35.1
Babel==2.5.1
backports.ssl-match-hostname==3.5.0.1
bcrypt==3.1.7
boto==2.47.0
boto3==1.9.223
botocore==1.12.253
cachetools==3.1.1
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
colorama==0.4.3
cryptography==2.8
decorator==4.4.1
docutils==0.15.2
dogpile.cache==0.9.0
google-auth==1.6.2
gpg==1.10.0
humanfriendly==4.18
idna==2.8
iso8601==0.1.12
isodate==0.6.0
Jinja2==2.10.1
jmespath==0.9.4
jsonpatch==1.24
jsonpointer==2.0
keystoneauth1==3.18.0
knack==0.3.3
lxml==4.4.2
MarkupSafe==1.1.1
msrest==0.6.1
msrestazure==0.5.0
munch==2.5.0
ncclient==0.6.3
netaddr==0.7.19
netifaces==0.10.9
ntlm-auth==1.4.0
oauthlib==3.1.0
openstacksdk==0.37.0
os-service-types==1.7.0
ovirt-engine-sdk-python==4.3.0
packaging==19.2
paramiko==2.7.1
pbr==5.4.4
ply==3.9
psutil==5.4.3
psycopg2==2.7.5
pyasn1==0.4.8
pyasn1-modules==0.2.7
pycparser==2.19
pycurl==7.43.0.2
Pygments==2.5.2
PyJWT==1.7.1
pykerberos==1.2.1
PyNaCl==1.3.0
pyOpenSSL==19.1.0
pyparsing==2.4.5
python-dateutil==2.8.1
pytz==2017.2
pyvmomi==6.7.3
pywinrm==0.3.0
PyYAML==5.2
requests==2.22.0
requests-credssp==1.0.2
requests-kerberos==0.12.0
requests-ntlm==1.1.0
requests-oauthlib==1.3.0
requestsexceptions==1.4.0
rpm==4.14.2
s3transfer==0.2.1
selectors2==2.0.1
selinux==2.9
six==1.13.0
stevedore==1.31.0
supervisor==4.1.0
tabulate==0.8.2
urllib3==1.25.7
virtualenv==16.7.10
xmltodict==0.12.0