2

我正在尝试在 AWX 容器中安装其他 python 包,awx_tasks以便更改可以启用 ansible 模块,如snow, ec2_elb_factsrun (作为 Python 模块的先决条件)。我使用以下方法在容器中进行了更改:

# docker exec -it 80ab6bf562a9 bash

80ab6bf562a9容器的容器 ID在哪里awx_task

然后在自定义虚拟环境中安装所需的包(如 AWX文档中所述)。发布这个,我通过使用以下容器更改创建一个新图像来使更改永久化:

# 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_rabbitmqpostgres我一直在阅读有关此的多个帖子,但是,我找不到任何突出显示有关此内容的帖子。

我基本上希望awx_task容器中的更改能够工作,以便我可以实现使自定义模块工作的目标。谁能建议可以做些什么,以便新awx_task容器可以扮演旧 awx_task 的角色并且 AWX 可以正常工作?

4

2 回答 2

1

由于我找到了执行此操作的方法,因此我将分享进行所需更改的步骤。

可以从目录控制 python 包的版本,可以在角色目录中requirements应用与 AWX 任务和 AWX Web 图像相关的更改。Dockerfile.j2一旦应用了所需的更改,我们就可以使用ansible-playbook install.yml -i inventory.

于 2020-03-31T14:06:42.463 回答
0

您应该使用 install.yml 重新启动 awx_task 容器,因为它确保设置了正确的环境变量、映射了正确的卷等。与您安装 AWX: 时使用的命令相同 ansible-playbook install.yml -i inventory。有关使用的参数的完整列表,请参见此处

于 2018-11-29T20:41:13.753 回答