I am trying to build docker image passing in Dockerfile on the same host where Dockerfile and other related project files resides. Without using ansible, I am able to run my Dockerfile build an image out of it and start a container that is if i use docker itself. But when i try to put these steps into ansible playbook, it fails. On this host machine, docker, ansible, python-pip and docker sdk for python are installed
Outputs of different commands:
ansible localhost -m debug -a "var=ansible_python_interpreter"
localhost | SUCCESS => {
"ansible_python_interpreter": "/usr/bin/python2"
}
pip --version
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
Metadata-Version: 2.1
Name: docker
Version: 5.0.3
ansible --version | grep "python version"
python version = 2.7.5
inventory file
[local]
localhost ansible_connection=local
ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/username/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Nov 13 2020, 02:52:00) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44.0.3)]
Operating System: Oracle Linux Server 7.9
ansible-playbook -i inventory docker-container.yml OR ansible-playbook docker-container.yml
hosts: local
vars:
- dockerfile_sample: "Dockerfile"
- docker_image_name: "built-thru-ansible:1"
- docker_container_name: "running-thru-ansible"
- proxy: "http://validproxyurl.com:XXXX"
tasks:
- name: "Build docker image"
docker_image:
name: "{{docker_image_name}}"
build:
path: "path/to/dockerfiledir/"
pull: no
dockerfile: "{{dockerfile_sample}}"
buildargs:
HTTP_PROXY: "{{proxy}}"
HTTPS_PROXY: "{{proxy}}"
state: present
source: build
- name: "launch docker container"
docker_container:
name: "{{docker_container_name}}"
image: "{{docker_image_name}}"
state: started
exposed_ports:
- "XXXX"
ports:
- "XXXX:XXXX"
register: docker_info
Error: -
PLAY [local] ********************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************
[WARNING]: Platform linux on host localhost is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
ok: [localhost]
TASK [Build docker image] *******************************************************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: SyntaxError: invalid syntax
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/home/infra/.ansible/tmp/ansible-tmp-1643737614.37-38618-81901358275286/AnsiballZ_docker_image.py\", line 102, in <module>\n _ansiballz_main()\n File \"/home/infra/.ansible/tmp/ansible-tmp-1643737614.37-38618-81901358275286/AnsiballZ_docker_image.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/infra/.ansible/tmp/ansible-tmp-1643737614.37-38618-81901358275286/AnsiballZ_docker_image.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible.modules.cloud.docker.docker_image', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib64/python2.7/runpy.py\", line 176, in run_module\n fname, loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\n exec code in run_globals\n File \"/tmp/ansible_docker_image_payload_pKjB0q/ansible_docker_image_payload.zip/ansible/modules/cloud/docker/docker_image.py\", line 436, in <module>\n File \"/tmp/ansible_docker_image_payload_pKjB0q/ansible_docker_image_payload.zip/ansible/module_utils/docker/common.py\", line 44, in <module>\n File \"/usr/lib/python2.7/site-packages/docker/__init__.py\", line 2, in <module>\n from .api import APIClient\n File \"/usr/lib/python2.7/site-packages/docker/api/__init__.py\", line 2, in <module>\n from .client import APIClient\n File \"/usr/lib/python2.7/site-packages/docker/api/client.py\", line 222\n f'Error while fetching server API version: {e}'\n ^\nSyntaxError: invalid syntax\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/de86fbe2-7833-47a5-9934-4e1e8a33b7d2n%40googlegroups.com.