我正在尝试在AWX容器awx_tasks
中安装其他python软件包,以便所做的更改可以使snow
,ec2_elb_facts
之类的ansible模块能够运行(具有作为Python模块的先决条件) )。我使用以下方法在容器中进行了更改:
# docker exec -it 80ab6bf562a9 bash
其中80ab6bf562a9
是awx_task
容器的容器ID。
,然后在自定义虚拟环境中安装了必需的软件包(如AWX documentation中所述)。发布此信息后,我通过使用以下容器更改创建新图像来使更改永久生效:
# docker commit 80ab6bf562a9 ansible/awx_task:latest
发布此信息后,运行以下命令以将新容器与具有容器更改的新创建的图像映射。
# docker run --name awx_task -d 5290f9b3268c
以下是发布上述更改的容器。在这里,使用现有容器中的更改与新图像映射的新创建的容器为968fb2a7da2f
。
# docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
968fb2a7da2f 5290f9b3268c "/tini -- /bin/sh -c…" 2 days ago Exited (143) 2 days ago awx_task
80ab6bf562a9 535bb2b8e1f3 "/tini -- /bin/sh -c…" 3 weeks ago Up 2 days 8052/tcp awx_task_OLD
aea2551951d5 b7c261b76010 "/tini -- /bin/sh -c…" 3 weeks ago Up 2 days 0.0.0.0:80->8052/tcp awx_web
e789a4a82a9e memcached:alpine "docker-entrypoint.s…" 3 weeks ago Up 2 days 11211/tcp memcached
a8c74584255c ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" 3 weeks ago Up 2 days 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp rabbitmq
25f6f6ca7766 postgres:9.6 "docker-entrypoint.s…" 3 weeks ago Up 2 days 5432/tcp postgres
以下是我的图片发布于上述更改。在这里,新创建的图像(带有更改)为5290f9b3268c
。
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ansible/awx_task latest 5290f9b3268c 2 days ago 1.48GB
postgres 9.6 106bdfb062df 8 weeks ago 235MB
ansible/awx_task <none> 535bb2b8e1f3 8 weeks ago 1.07GB
ansible/awx_web <none> b7c261b76010 8 weeks ago 1.04GB
hello-world latest 2cb0d9787c4d 2 months ago 1.85kB
memcached alpine b40e8fa7e3e5 2 months ago 8.69MB
ansible/awx_rabbitmq 3.7.4 e08fe791079e 6 months ago 85.6MB
新容器已正确映射到新映像(已获得我想要的更改)。现在的问题是,当我停止旧容器并启动新容器时,AWX不起作用。我可以只查看UI,如果我运行诸如执行模板之类的任何任务,它就会冻结。似乎新容器/图像未与awx_rabbitmq
,postgres
等其他容器对话。我一直在阅读与此相关的多篇文章,但是我找不到任何能突出显示任何内容的文章关于这个。
我基本上希望awx_task
容器中的更改能够起作用,以便我可以实现使自定义模块起作用的目标。谁能建议如何做,以便新的awx_task
容器可以代替旧的awx_task角色,而AWX可以正常工作?
答案 0 :(得分:0)
您应该使用install.yml重新启动awx_task容器,因为它可以确保设置了正确的环境变量,映射了正确的卷,等等。与用于安装AWX的命令相同:
my-configs
。
有关使用的参数的完整列表,请参见here。
答案 1 :(得分:0)
自从找到解决方法后,我将分享进行所需更改的步骤。
可以从requirements
目录控制python软件包的版本,可以在role目录的Dockerfile.j2
中应用与AWX Task和AWX Web Images相关的更改。应用所需的更改后,我们可以使用ansible-playbook install.yml -i inventory
运行设置。