Skip to content
This repository has been archived by the owner on Mar 23, 2019. It is now read-only.

Dependencies are not installed with --project-path option #593

Closed
hackermd opened this issue Jun 9, 2017 · 3 comments · Fixed by #655
Closed

Dependencies are not installed with --project-path option #593

hackermd opened this issue Jun 9, 2017 · 3 comments · Fixed by #655
Assignees

Comments

@hackermd
Copy link

hackermd commented Jun 9, 2017

ISSUE TYPE

Bug Report

The following files are located in /tmp/test:

container.yml
version: "2"

settings:

  conductor_base: tissuemaps/base:latest

services:

  db:
    from: tissuemaps/base:latest
    roles:
      - role: postgresql
        postgresql_users:
           - name: foo
requirements.yml
- src: ANXS.postgresql
  name: postgresql
ansible-requirements.txt
psycopg2==2.7.1
OS / ENVIRONMENT
Ansible Container, version 0.9.1
Darwin, MacBook-Pro-4.local, 14.5.0, Darwin Kernel Version 14.5.0: Tue Apr 11 16:12:42 PDT 2017; root:xnu-2782.50.9.2.3~1/RELEASE_X86_64, x86_64
2.7.11 (default, Jan 22 2016, 08:28:37)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] /Users/mdh/Envs/deploy/bin/python2.7
{
  "ContainersPaused": 0,
  "Labels": null,
  "CgroupDriver": "cgroupfs",
  "ContainersRunning": 0,
  "ContainerdCommit": {
    "Expected": "4ab9917febca54791c5f071a9d1f404867857fcc",
    "ID": "4ab9917febca54791c5f071a9d1f404867857fcc"
  },
  "InitBinary": "docker-init",
  "NGoroutines": 28,
  "Swarm": {
    "Managers": 0,
    "ControlAvailable": false,
    "NodeID": "",
    "Cluster": {
      "Spec": {
        "TaskDefaults": {},
        "Orchestration": {},
        "EncryptionConfig": {
          "AutoLockManagers": false
        },
        "Raft": {
          "HeartbeatTick": 0,
          "ElectionTick": 0
        },
        "CAConfig": {},
        "Dispatcher": {}
      },
      "Version": {},
      "ID": "",
      "CreatedAt": "0001-01-01T00:00:00Z",
      "UpdatedAt": "0001-01-01T00:00:00Z"
    },
    "Nodes": 0,
    "Error": "",
    "RemoteManagers": null,
    "LocalNodeState": "inactive",
    "NodeAddr": ""
  },
  "LoggingDriver": "json-file",                                                                                                                                         [67/81325]
  "OSType": "linux",
  "HttpProxy": "",
  "Runtimes": {
    "runc": {
      "path": "docker-runc"
    }
  },
  "DriverStatus": [
    [
      "Backing Filesystem",
      "extfs"
    ],
    [
      "Supports d_type",
      "true"
    ],
    [
      "Native Overlay Diff",
      "true"
    ]
  ],
  "OperatingSystem": "Alpine Linux v3.5",
  "Containers": 1,
  "HttpsProxy": "",
  "BridgeNfIp6tables": true,
  "MemTotal": 2095890432,
  "SecurityOptions": [
    "name=seccomp,profile=default"
  ],
  "Driver": "overlay2",
  "IndexServerAddress": "https://index.docker.io/v1/",
  "ClusterStore": "",
  "InitCommit": {
    "Expected": "949e6fa",
    "ID": "949e6fa"
  },
  "Isolation": "",
  "SystemStatus": null,
  "OomKillDisable": true,
  "ClusterAdvertise": "",
  "SystemTime": "2017-06-08T13:28:50.418713812Z",
  "Name": "moby",
  "CPUSet": true,
  "RegistryConfig": {
    "InsecureRegistryCIDRs": [
      "127.0.0.0/8"
    ],
    "IndexConfigs": {
      "docker.io": {
        "Official": true,
        "Name": "docker.io",
        "Secure": true,
        "Mirrors": null
      }
    },
    "Mirrors": []
  },
  "DefaultRuntime": "runc",
  "ContainersStopped": 1,
  "NCPU": 4,
  "NFd": 17,
  "Architecture": "x86_64",
  "KernelMemory": true,
  "CpuCfsQuota": true,
  "Debug": true,
  "ID": "H5ZV:5EUE:NUFZ:IH2C:LMFL:4WGF:GH6V:DJ7L:F57S:MVFW:J2OS:U7L6",
  "IPv4Forwarding": true,
  "KernelVersion": "4.9.27-moby",
  "BridgeNfIptables": true,
  "NoProxy": "*.local, 169.254/16",
  "LiveRestoreEnabled": false,
  "ServerVersion": "17.03.1-ce",
  "CpuCfsPeriod": true,
  "ExperimentalBuild": true,
  "MemoryLimit": true,
  "SwapLimit": true,
  "Plugins": {
    "Volume": [
      "local"
    ],
    "Network": [
      "bridge",
      "host",
      "ipvlan",
      "macvlan",
      "null",
      "overlay"
    ],
    "Authorization": null
  },
  "Images": 142,
  "DockerRootDir": "/var/lib/docker",
  "NEventsListener": 1,
  "CPUShares": true,
  "RuncCommit": {
    "Expected": "54296cf40ad8143b62dbcaa1d90e520a2136ddfe",
    "ID": "54296cf40ad8143b62dbcaa1d90e520a2136ddfe"
  }
}
{
  "KernelVersion": "4.9.27-moby",
  "Arch": "amd64",
  "BuildTime": "2017-03-24T00:00:50.070226199+00:00",
  "ApiVersion": "1.27",
  "Version": "17.03.1-ce",
  "MinAPIVersion": "1.12",
  "GitCommit": "c6d412e",
  "Os": "linux",
  "Experimental": true,
  "GoVersion": "go1.7.5"
}
SUMMARY

Python dependencies declared in ansible-requirements.txt and role dependencies declared in requirements.yml are not installed in the conductor container when the ansible-container build is called from outside the project directory with --project-path option. The postgresql role is subsequently not found and PostgreSQL modules would fail downstream due to missing psycopg2 package.

STEPS TO REPRODUCE
ansible-container --debug --project-path /tmp/test build
EXPECTED RESULTS

Successful inclusion of postgresql role defined in requirements.yml and execution of Ansible module postgresql_user upon adding psycopg2 to ansible-requirements.txt.

ACTUAL RESULTS

Role not found.

2017-06-09T07:25:13.363505 Processing service...          [container.config] caller_file=/_ansible/container/config.py caller_func=_process_services caller_line=281 service=u'db' service_data={u'from': u'tissuemaps/base:latest', u'roles': [{u'role': u'postgresql', u'postgresql_users': [{u'name': u'foo'}]}]}
Traceback (most recent call last):
  File "/usr/local/bin/conductor", line 11, in <module>
    load_entry_point('ansible-container', 'console_scripts', 'conductor')()
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/cli.py", line 351, in conductor_commandline
    conductor_config = AnsibleContainerConductorConfig(list_to_ordereddict(containers_config))
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/config.py", line 238, in __init__
    self._process_services()
  File "/_ansible/container/config.py", line 298, in _process_services
    role_metadata = get_metadata_from_role(role_name)
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/utils/__init__.py", line 265, in get_metadata_from_role
    return get_content_from_role(role_name, os.path.join('meta', 'container.yml'))
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/utils/__init__.py", line 254, in get_content_from_role
    role_path = resolve_role_to_path(role_name)
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/utils/__init__.py", line 203, in resolve_role_to_path
    loader=loader)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/role/include.py", line 60, in load
    return ri.load_data(data, variable_manager=variable_manager, loader=loader)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/base.py", line 241, in load_data
    ds = self.preprocess_data(ds)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/role/definition.py", line 95, in preprocess_data
    (role_name, role_path) = self._load_role_path(role_name)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/role/definition.py", line 188, in _load_role_path
    raise AnsibleError("the role '%s' was not found in %s" % (role_name, ":".join(role_search_paths)), obj=self._ds)
ansible.errors.AnsibleError: the role 'postgresql' was not found in ./roles:/src/roles:/etc/ansible/roles:.
WORKAROUND

Changing directory before calling ansible-container solves the problem:

cd /tmp/test && ansible-container --debug --project-path /tmp/test build
@j00bar
Copy link
Contributor

j00bar commented Jun 9, 2017

Howdy, and thank you for the bug report? Any way I can convince you to include the full debug build output? It would be helpful to see the parts in the build process where the Conductor container runs ansible-galaxy install. Thanks!

@j00bar j00bar added the needinfo label Jun 9, 2017
@hackermd
Copy link
Author

hackermd commented Jun 9, 2017

2017-06-09T20:54:01.805841 The default type is            [container.config] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/config.py caller_func=_resolve_defaults caller_line=140 config=<class 'ruamel.yaml.comments.CommentedMap'> defaults=<type '_ordereddict.ordereddict'>
2017-06-09T20:54:01.806686 Getting environment variables... [container.config] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/config.py caller_func=_get_environment_variables caller_line=156
2017-06-09T20:54:01.807698 Read environment variables     [container.config] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/config.py caller_func=_get_environment_variables caller_line=161 env_vars={}
2017-06-09T20:54:01.808495 Resolved template variables    [container.config] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/config.py caller_func=_resolve_defaults caller_line=145 template_vars={}
2017-06-09T20:54:01.809140 Parsed config                  [container.config] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/config.py caller_func=set_env caller_line=121 config={"version": "2", "settings": {"conductor_base": "tissuemaps/base", "pwd": "/tmp/test"}, "services": {"db": {"from": "tissuemaps/base", "roles": [{"role": "postgresql", "postgresql_users": [{"name": "foo"}]}]}}, "defaults": {}}
2017-06-09T20:54:01.810266 Loading engine capabilities    [container.utils.loader] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/utils/loader.py caller_func=load_engine caller_line=14 capabilities=['BUILD', 'RUN'] engine=docker
2017-06-09T20:54:02.070314 Could not find container for conductor [container.docker.engine] all_containers=[] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=get_container_id_for_service caller_line=384 container=u'test_conductor'
2017-06-09T20:54:02.078273 Call: Engine.build_conductor_image [container.docker.engine] args=('/tmp/test', 'tissuemaps/base') caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=Engine.build_conductor_image caller_line=23 kwargs={'cache': False}
2017-06-09T20:54:02.081694 Using temporary directory      [container.utils.temp] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/utils/temp.py caller_func=__enter__ caller_line=17 path=/var/folders/lw/p3tp0mb117ngnrtq7fy12_kw0000gn/T/tmpGSM6kp
2017-06-09T20:54:02.082381 Building Docker Engine context... [container.docker.engine] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=build_conductor_image caller_line=649
2017-06-09T20:54:02.310795 Rendered Jinja Template:       [container.utils] body=FROM tissuemaps/base
ENV ANSIBLE_CONTAINER=1



ADD https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz /tmp/docker.tgz

COPY /contrib/get-pip.py /get-pip.py
RUN python /get-pip.py && \
    mkdir -p /etc/ansible/roles /_ansible/src && \
    cd /usr/local/bin && \
    tar -xz --strip-components=1 -f /tmp/docker.tgz

# The COPY here will break cache if the version of conductor changed
COPY /container-src /_ansible/container
RUN cd /_ansible && \
    pip install -r container/conductor-build/conductor-requirements.txt && \
    PYTHONPATH=. LC_ALL="en_US.UTF-8" python container/conductor-build/setup.py develop -v && \
    ansible-galaxy install -p /etc/ansible/roles -r container/conductor-build/conductor-requirements.yml

# The COPY here will break cache if the requirements or ansible.cfg has changed
COPY /build-src /_ansible/build
RUN ( test -f /_ansible/build/ansible-requirements.txt && pip install --no-cache-dir -r /_ansible/build/ansible-requirements.txt || true ) && \
    ( test -f /_ansible/build/requirements.yml && ansible-galaxy install -p /etc/ansible/roles -r /_ansible/build/requirements.yml || true ) && \
    ( test -f /_ansible/build/ansible.cfg && cp /_ansible/build/ansible.cfg /etc/ansible/ansible.cfg || true)

VOLUME /usr


 caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/utils/__init__.py caller_func=jinja_render_to_temp caller_line=81
2017-06-09T20:54:02.312500 Context manifest:              [container.docker.engine] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=build_conductor_image caller_line=705
2017-06-09T20:54:02.312662 tarball item: build-src/.touch (0 bytes) [container.docker.engine] bytes=0 file=build-src/.touch
2017-06-09T20:54:02.312827 tarball item: contrib/get-pip.py (1595409 bytes) [container.docker.engine] bytes=1595409 file=contrib/get-pip.py
2017-06-09T20:54:02.312941 tarball item: container-src (0 bytes) [container.docker.engine] bytes=0L file=container-src
2017-06-09T20:54:02.313071 tarball item: container-src/__init__.py (947 bytes) [container.docker.engine] bytes=947 file=container-src/__init__.py
2017-06-09T20:54:02.313189 tarball item: container-src/__init__.pyc (1686 bytes) [container.docker.engine] bytes=1686 file=container-src/__init__.pyc
2017-06-09T20:54:02.313305 tarball item: container-src/cli.py (19540 bytes) [container.docker.engine] bytes=19540 file=container-src/cli.py
2017-06-09T20:54:02.313411 tarball item: container-src/cli.pyc (16703 bytes) [container.docker.engine] bytes=16703 file=container-src/cli.pyc
2017-06-09T20:54:02.313516 tarball item: container-src/config.py (14021 bytes) [container.docker.engine] bytes=14021 file=container-src/config.py
2017-06-09T20:54:02.313622 tarball item: container-src/config.pyc (14067 bytes) [container.docker.engine] bytes=14067 file=container-src/config.pyc
2017-06-09T20:54:02.313726 tarball item: container-src/core.py (37981 bytes) [container.docker.engine] bytes=37981 file=container-src/core.py
2017-06-09T20:54:02.313831 tarball item: container-src/core.pyc (28623 bytes) [container.docker.engine] bytes=28623 file=container-src/core.pyc
2017-06-09T20:54:02.313953 tarball item: container-src/docker (0 bytes) [container.docker.engine] bytes=0L file=container-src/docker
2017-06-09T20:54:02.314058 tarball item: container-src/docker/__init__.py (205 bytes) [container.docker.engine] bytes=205 file=container-src/docker/__init__.py
2017-06-09T20:54:02.314182 tarball item: container-src/docker/__init__.pyc (386 bytes) [container.docker.engine] bytes=386 file=container-src/docker/__init__.pyc
2017-06-09T20:54:02.314284 tarball item: container-src/docker/deploy.py (248 bytes) [container.docker.engine] bytes=248 file=container-src/docker/deploy.py
2017-06-09T20:54:02.314389 tarball item: container-src/docker/deploy.pyc (384 bytes) [container.docker.engine] bytes=384 file=container-src/docker/deploy.pyc
2017-06-09T20:54:02.314511 tarball item: container-src/docker/engine.py (34750 bytes) [container.docker.engine] bytes=34750 file=container-src/docker/engine.py
2017-06-09T20:54:02.314615 tarball item: container-src/docker/engine.pyc (31689 bytes) [container.docker.engine] bytes=31689 file=container-src/docker/engine.pyc
2017-06-09T20:54:02.314737 tarball item: container-src/docker/files (0 bytes) [container.docker.engine] bytes=0L file=container-src/docker/files
2017-06-09T20:54:02.314840 tarball item: container-src/docker/files/conductor-requirements.txt (294 bytes) [container.docker.engine] bytes=294 file=container-src/docker/files/conductor-requirements.txt
2017-06-09T20:54:02.314944 tarball item: container-src/docker/files/conductor-requirements.yml (60 bytes) [container.docker.engine] bytes=60 file=container-src/docker/files/conductor-requirements.yml
2017-06-09T20:54:02.315068 tarball item: container-src/docker/files/get-pip.py (1595409 bytes) [container.docker.engine] bytes=1595409 file=container-src/docker/files/get-pip.py
2017-06-09T20:54:02.315171 tarball item: container-src/docker/files/get-pip.pyc (1593830 bytes) [container.docker.engine] bytes=1593830 file=container-src/docker/files/get-pip.pyc
2017-06-09T20:54:02.315273 tarball item: container-src/docker/files/setup.py (3215 bytes) [container.docker.engine] bytes=3215 file=container-src/docker/files/setup.py
2017-06-09T20:54:02.315375 tarball item: container-src/docker/files/setup.pyc (4418 bytes) [container.docker.engine] bytes=4418 file=container-src/docker/files/setup.pyc
2017-06-09T20:54:02.315479 tarball item: container-src/docker/importer.py (23310 bytes) [container.docker.engine] bytes=23310 file=container-src/docker/importer.py
2017-06-09T20:54:02.315581 tarball item: container-src/docker/importer.pyc (21697 bytes) [container.docker.engine] bytes=21697 file=container-src/docker/importer.pyc
2017-06-09T20:54:02.315682 tarball item: container-src/docker/templates (0 bytes) [container.docker.engine] bytes=0L file=container-src/docker/templates
2017-06-09T20:54:02.315785 tarball item: container-src/docker/templates/conductor-dockerfile.j2 (2901 bytes) [container.docker.engine] bytes=2901 file=container-src/docker/templates/conductor-dockerfile.j2
2017-06-09T20:54:02.315889 tarball item: container-src/engine.py (6074 bytes) [container.docker.engine] bytes=6074 file=container-src/engine.py
2017-06-09T20:54:02.315992 tarball item: container-src/engine.pyc (11768 bytes) [container.docker.engine] bytes=11768 file=container-src/engine.pyc
2017-06-09T20:54:02.316095 tarball item: container-src/exceptions.py (1991 bytes) [container.docker.engine] bytes=1991 file=container-src/exceptions.py
2017-06-09T20:54:02.316207 tarball item: container-src/exceptions.pyc (6641 bytes) [container.docker.engine] bytes=6641 file=container-src/exceptions.pyc
2017-06-09T20:54:02.316311 tarball item: container-src/k8s (0 bytes) [container.docker.engine] bytes=0L file=container-src/k8s
2017-06-09T20:54:02.316414 tarball item: container-src/k8s/__init__.py (196 bytes) [container.docker.engine] bytes=196 file=container-src/k8s/__init__.py
2017-06-09T20:54:02.316517 tarball item: container-src/k8s/__init__.pyc (383 bytes) [container.docker.engine] bytes=383 file=container-src/k8s/__init__.pyc
2017-06-09T20:54:02.316620 tarball item: container-src/k8s/base_deploy.py (27642 bytes) [container.docker.engine] bytes=27642 file=container-src/k8s/base_deploy.py
2017-06-09T20:54:02.316723 tarball item: container-src/k8s/base_deploy.pyc (21617 bytes) [container.docker.engine] bytes=21617 file=container-src/k8s/base_deploy.pyc
2017-06-09T20:54:02.316825 tarball item: container-src/k8s/base_engine.py (5164 bytes) [container.docker.engine] bytes=5164 file=container-src/k8s/base_engine.py
2017-06-09T20:54:02.316928 tarball item: container-src/k8s/base_engine.pyc (5985 bytes) [container.docker.engine] bytes=5985 file=container-src/k8s/base_engine.pyc
2017-06-09T20:54:02.317030 tarball item: container-src/k8s/deploy.py (1720 bytes) [container.docker.engine] bytes=1720 file=container-src/k8s/deploy.py
2017-06-09T20:54:02.317132 tarball item: container-src/k8s/deploy.pyc (2256 bytes) [container.docker.engine] bytes=2256 file=container-src/k8s/deploy.pyc
2017-06-09T20:54:02.317233 tarball item: container-src/k8s/engine.py (2389 bytes) [container.docker.engine] bytes=2389 file=container-src/k8s/engine.py
2017-06-09T20:54:02.317335 tarball item: container-src/k8s/engine.pyc (2188 bytes) [container.docker.engine] bytes=2188 file=container-src/k8s/engine.pyc
2017-06-09T20:54:02.317438 tarball item: container-src/openshift (0 bytes) [container.docker.engine] bytes=0L file=container-src/openshift
2017-06-09T20:54:02.317539 tarball item: container-src/openshift/__init__.py (196 bytes) [container.docker.engine] bytes=196 file=container-src/openshift/__init__.py
2017-06-09T20:54:02.317641 tarball item: container-src/openshift/__init__.pyc (389 bytes) [container.docker.engine] bytes=389 file=container-src/openshift/__init__.pyc
2017-06-09T20:54:02.317742 tarball item: container-src/openshift/deploy.py (6203 bytes) [container.docker.engine] bytes=6203 file=container-src/openshift/deploy.py
2017-06-09T20:54:02.317843 tarball item: container-src/openshift/deploy.pyc (5671 bytes) [container.docker.engine] bytes=5671 file=container-src/openshift/deploy.pyc
2017-06-09T20:54:02.317944 tarball item: container-src/openshift/engine.py (2151 bytes) [container.docker.engine] bytes=2151 file=container-src/openshift/engine.py
2017-06-09T20:54:02.318045 tarball item: container-src/openshift/engine.pyc (2960 bytes) [container.docker.engine] bytes=2960 file=container-src/openshift/engine.pyc
2017-06-09T20:54:02.318145 tarball item: container-src/templates (0 bytes) [container.docker.engine] bytes=0L file=container-src/templates
2017-06-09T20:54:02.318248 tarball item: container-src/templates/ansible-container-inventory.py (1230 bytes) [container.docker.engine] bytes=1230 file=container-src/templates/ansible-container-inventory.py
2017-06-09T20:54:02.318351 tarball item: container-src/templates/ansible-container-inventory.pyc (2327 bytes) [container.docker.engine] bytes=2327 file=container-src/templates/ansible-container-inventory.pyc
2017-06-09T20:54:02.318452 tarball item: container-src/templates/ansible-dockerfile.j2 (1194 bytes) [container.docker.engine] bytes=1194 file=container-src/templates/ansible-dockerfile.j2
2017-06-09T20:54:02.318552 tarball item: container-src/templates/ansible.cfg (41 bytes) [container.docker.engine] bytes=41 file=container-src/templates/ansible.cfg
2017-06-09T20:54:02.318653 tarball item: container-src/templates/build-docker-compose.j2.yml (1635 bytes) [container.docker.engine] bytes=1635 file=container-src/templates/build-docker-compose.j2.yml
2017-06-09T20:54:02.318753 tarball item: container-src/templates/builder.sh (620 bytes) [container.docker.engine] bytes=620 file=container-src/templates/builder.sh
2017-06-09T20:54:02.318855 tarball item: container-src/templates/compose_versioned.j2.yml (237 bytes) [container.docker.engine] bytes=237 file=container-src/templates/compose_versioned.j2.yml
2017-06-09T20:54:02.318955 tarball item: container-src/templates/hosts.j2 (90 bytes) [container.docker.engine] bytes=90 file=container-src/templates/hosts.j2
2017-06-09T20:54:02.319055 tarball item: container-src/templates/init (0 bytes) [container.docker.engine] bytes=0L file=container-src/templates/init
2017-06-09T20:54:02.319154 tarball item: container-src/templates/init/ansible-requirements.j2.txt (130 bytes) [container.docker.engine] bytes=130 file=container-src/templates/init/ansible-requirements.j2.txt
2017-06-09T20:54:02.319254 tarball item: container-src/templates/init/ansible.j2.cfg (145 bytes) [container.docker.engine] bytes=145 file=container-src/templates/init/ansible.j2.cfg
2017-06-09T20:54:02.319353 tarball item: container-src/templates/init/container.j2.yml (2116 bytes) [container.docker.engine] bytes=2116 file=container-src/templates/init/container.j2.yml
2017-06-09T20:54:02.319458 tarball item: container-src/templates/init/meta.j2.yml (1231 bytes) [container.docker.engine] bytes=1231 file=container-src/templates/init/meta.j2.yml
2017-06-09T20:54:02.319559 tarball item: container-src/templates/init/requirements.j2.yml (298 bytes) [container.docker.engine] bytes=298 file=container-src/templates/init/requirements.j2.yml
2017-06-09T20:54:02.319658 tarball item: container-src/templates/install-docker-compose.j2.yml (712 bytes) [container.docker.engine] bytes=712 file=container-src/templates/install-docker-compose.j2.yml
2017-06-09T20:54:02.319759 tarball item: container-src/templates/listhosts-docker-compose.j2.yml (1640 bytes) [container.docker.engine] bytes=1640 file=container-src/templates/listhosts-docker-compose.j2.yml
2017-06-09T20:54:02.319857 tarball item: container-src/templates/restart-docker-compose.j2.yml (75 bytes) [container.docker.engine] bytes=75 file=container-src/templates/restart-docker-compose.j2.yml
2017-06-09T20:54:02.319957 tarball item: container-src/templates/role (0 bytes) [container.docker.engine] bytes=0L file=container-src/templates/role
2017-06-09T20:54:02.320056 tarball item: container-src/templates/role/.travis.j2.yml (540 bytes) [container.docker.engine] bytes=540 file=container-src/templates/role/.travis.j2.yml
2017-06-09T20:54:02.320156 tarball item: container-src/templates/role/defaults (0 bytes) [container.docker.engine] bytes=0L file=container-src/templates/role/defaults
2017-06-09T20:54:02.320256 tarball item: container-src/templates/role/defaults/main.j2.yml (55 bytes) [container.docker.engine] bytes=55 file=container-src/templates/role/defaults/main.j2.yml
2017-06-09T20:54:02.320356 tarball item: container-src/templates/role/meta (0 bytes) [container.docker.engine] bytes=0L file=container-src/templates/role/meta
2017-06-09T20:54:02.320456 tarball item: container-src/templates/role/meta/main.j2.yml (3220 bytes) [container.docker.engine] bytes=3220 file=container-src/templates/role/meta/main.j2.yml
2017-06-09T20:54:02.320556 tarball item: container-src/templates/role/README.j2.md (1287 bytes) [container.docker.engine] bytes=1287 file=container-src/templates/role/README.j2.md
2017-06-09T20:54:02.320657 tarball item: container-src/templates/role/test (0 bytes) [container.docker.engine] bytes=0L file=container-src/templates/role/test
2017-06-09T20:54:02.320757 tarball item: container-src/templates/role/test/test.j2.yml (81 bytes) [container.docker.engine] bytes=81 file=container-src/templates/role/test/test.j2.yml
2017-06-09T20:54:02.320856 tarball item: container-src/templates/run-docker-compose.j2.yml (75 bytes) [container.docker.engine] bytes=75 file=container-src/templates/run-docker-compose.j2.yml
2017-06-09T20:54:02.320957 tarball item: container-src/templates/stop-docker-compose.j2.yml (75 bytes) [container.docker.engine] bytes=75 file=container-src/templates/stop-docker-compose.j2.yml
2017-06-09T20:54:02.321056 tarball item: container-src/templates/wait_on_host.py (2365 bytes) [container.docker.engine] bytes=2365 file=container-src/templates/wait_on_host.py
2017-06-09T20:54:02.321156 tarball item: container-src/templates/wait_on_host.pyc (2601 bytes) [container.docker.engine] bytes=2601 file=container-src/templates/wait_on_host.pyc
2017-06-09T20:54:02.321259 tarball item: container-src/utils (0 bytes) [container.docker.engine] bytes=0L file=container-src/utils
2017-06-09T20:54:02.321381 tarball item: container-src/utils/__init__.py (10744 bytes) [container.docker.engine] bytes=10744 file=container-src/utils/__init__.py
2017-06-09T20:54:02.321484 tarball item: container-src/utils/__init__.pyc (13104 bytes) [container.docker.engine] bytes=13104 file=container-src/utils/__init__.pyc
2017-06-09T20:54:02.321600 tarball item: container-src/utils/_text.py (12304 bytes) [container.docker.engine] bytes=12304 file=container-src/utils/_text.py
2017-06-09T20:54:02.321707 tarball item: container-src/utils/_text.pyc (8973 bytes) [container.docker.engine] bytes=8973 file=container-src/utils/_text.pyc
2017-06-09T20:54:02.321810 tarball item: container-src/utils/galaxy.py (8120 bytes) [container.docker.engine] bytes=8120 file=container-src/utils/galaxy.py
2017-06-09T20:54:02.321917 tarball item: container-src/utils/galaxy.pyc (8629 bytes) [container.docker.engine] bytes=8629 file=container-src/utils/galaxy.pyc
2017-06-09T20:54:02.322021 tarball item: container-src/utils/loader.py (906 bytes) [container.docker.engine] bytes=906 file=container-src/utils/loader.py
2017-06-09T20:54:02.322179 tarball item: container-src/utils/loader.pyc (1288 bytes) [container.docker.engine] bytes=1288 file=container-src/utils/loader.pyc
2017-06-09T20:54:02.322317 tarball item: container-src/utils/logmux.py (1313 bytes) [container.docker.engine] bytes=1313 file=container-src/utils/logmux.py
2017-06-09T20:54:02.322436 tarball item: container-src/utils/logmux.pyc (3090 bytes) [container.docker.engine] bytes=3090 file=container-src/utils/logmux.pyc
2017-06-09T20:54:02.322551 tarball item: container-src/utils/temp.py (698 bytes) [container.docker.engine] bytes=698 file=container-src/utils/temp.py
2017-06-09T20:54:02.322662 tarball item: container-src/utils/temp.pyc (1594 bytes) [container.docker.engine] bytes=1594 file=container-src/utils/temp.pyc
2017-06-09T20:54:02.322772 tarball item: container-src/utils/visibility.py (3329 bytes) [container.docker.engine] bytes=3329 file=container-src/utils/visibility.py
2017-06-09T20:54:02.322881 tarball item: container-src/utils/visibility.pyc (4679 bytes) [container.docker.engine] bytes=4679 file=container-src/utils/visibility.pyc
2017-06-09T20:54:02.322989 tarball item: container-src/conductor-build/setup.py (3215 bytes) [container.docker.engine] bytes=3215 file=container-src/conductor-build/setup.py
2017-06-09T20:54:02.323098 tarball item: container-src/conductor-build/conductor-requirements.txt (294 bytes) [container.docker.engine] bytes=294 file=container-src/conductor-build/conductor-requirements.txt
2017-06-09T20:54:02.323206 tarball item: container-src/conductor-build/conductor-requirements.yml (60 bytes) [container.docker.engine] bytes=60 file=container-src/conductor-build/conductor-requirements.yml
2017-06-09T20:54:02.323312 tarball item: Dockerfile (1267 bytes) [container.docker.engine] bytes=1267 file=Dockerfile
2017-06-09T20:54:02.346981 Starting Docker build of Ansible Container Conductor image (please be patient)... [container.docker.engine] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=build_conductor_image caller_line=713
Step 1/10 : FROM tissuemaps/base
 ---> 8df915efc496
Step 2/10 : ENV ANSIBLE_CONTAINER 1
 ---> Running in ec5b99e3642d
 ---> 21822c949140
Removing intermediate container ec5b99e3642d
Step 3/10 : ADD https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz /tmp/docker.tgz

 ---> 00f942dd63da
Removing intermediate container 2c8c299831de
Step 4/10 : COPY /contrib/get-pip.py /get-pip.py
 ---> fd4bd907712c
Removing intermediate container 770cc20fcb75
Step 5/10 : RUN python /get-pip.py &&     mkdir -p /etc/ansible/roles /_ansible/src &&     cd /usr/local/bin &&     tar -xz --strip-components=1 -f /tmp/docker.tgz
 ---> Running in 848e62bc6a9d
Requirement already up-to-date: pip in /usr/local/lib/python2.7/dist-packages
 ---> f59f669a0723
Removing intermediate container 848e62bc6a9d
Step 6/10 : COPY /container-src /_ansible/container
 ---> 5bd9d6e28ed1
Removing intermediate container 87aca95588b6
Step 7/10 : RUN cd /_ansible &&     pip install -r container/conductor-build/conductor-requirements.txt &&     PYTHONPATH=. LC_ALL="en_US.UTF-8" python container/conductor-build/setup.py develop -v &&     ansible-galaxy install -p /etc/ansible/roles -r container/conductor-build/conductor-requirements.yml
 ---> Running in f47cb6fbe026
Collecting ansible>=2.3.0 (from -r container/conductor-build/conductor-requirements.txt (line 2))
  Downloading ansible-2.3.1.0.tar.gz (4.3MB)
Collecting openshift-1.0.0 from https://github.com/openshift/openshift-restclient-python/archive/master.tar.gz#egg=openshift-1.0.0 (from -r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading https://github.com/openshift/openshift-restclient-python/archive/master.tar.gz (698kB)
  Running setup.py (path:/tmp/pip-build-5LJiOr/openshift-1.0.0/setup.py) egg_info for package openshift-1.0.0 produced metadata for project name openshift. Fix your #egg=openshift-1.0.0 fragments.

Collecting PyYAML>=3.12 (from -r container/conductor-build/conductor-requirements.txt (line 4))
  Downloading PyYAML-3.12.tar.gz (253kB)
Collecting docker-compose>=1.7 (from -r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading docker_compose-1.13.0-py2.py3-none-any.whl (94kB)
Collecting requests>=2 (from -r container/conductor-build/conductor-requirements.txt (line 6))
  Downloading requests-2.17.3-py2.py3-none-any.whl (87kB)
Collecting ruamel.yaml>=0.14.2 (from -r container/conductor-build/conductor-requirements.txt (line 7))
  Downloading ruamel.yaml-0.15.5-cp27-cp27mu-manylinux1_x86_64.whl (525kB)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python2.7/dist-packages (from -r container/conductor-build/conductor-requirements.txt (line 8))
Collecting structlog[dev]>=16.1 (from -r container/conductor-build/conductor-requirements.txt (line 9))
  Downloading structlog-17.2.0-py2.py3-none-any.whl
Collecting python-string-utils>=0.6.0 (from -r container/conductor-build/conductor-requirements.txt (line 10))
  Downloading python-string-utils-0.6.0.tar.gz
Collecting jinja2 (from ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
  Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
Collecting paramiko (from ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
  Downloading paramiko-2.1.2-py2.py3-none-any.whl (172kB)
Collecting pycrypto>=2.6 (from ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
  Downloading pycrypto-2.6.1.tar.gz (446kB)
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
Collecting dictdiffer (from openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading dictdiffer-0.6.1-py2.py3-none-any.whl
Collecting kubernetes~=1.0.0 (from openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading kubernetes-1.0.2-py2.py3-none-any.whl (577kB)
Collecting dockerpty<0.5,>=0.4.1 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading dockerpty-0.4.1.tar.gz
Collecting texttable<0.9,>=0.8.1 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading texttable-0.8.8.tar.gz
Collecting cached-property<2,>=1.2.0 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading cached_property-1.3.0-py2.py3-none-any.whl
Collecting jsonschema<3,>=2.5.1 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading jsonschema-2.6.0-py2.py3-none-any.whl
Requirement already satisfied: ipaddress>=1.0.16; python_version < "3.3" in /usr/local/lib/python2.7/dist-packages (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
Collecting backports.ssl-match-hostname>=3.5; python_version < "3.5" (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading backports.ssl_match_hostname-3.5.0.1.tar.gz
Collecting docker<3.0,>=2.2.1 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading docker-2.3.0-py2.py3-none-any.whl (108kB)
Requirement already satisfied: enum34<2,>=1.0.4; python_version < "3.4" in /usr/local/lib/python2.7/dist-packages (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
Collecting docopt<0.7,>=0.6.1 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading docopt-0.6.2.tar.gz
Collecting colorama<0.4,>=0.3.7 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading colorama-0.3.9-py2.py3-none-any.whl
Collecting websocket-client<1.0,>=0.32.0 (from docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading websocket_client-0.40.0.tar.gz (196kB)
Requirement already satisfied: idna<2.6,>=2.5 in /usr/local/lib/python2.7/dist-packages (from requests>=2->-r container/conductor-build/conductor-requirements.txt (line 6))
Requirement already satisfied: urllib3<1.22,>=1.21.1 in /usr/local/lib/python2.7/dist-packages (from requests>=2->-r container/conductor-build/conductor-requirements.txt (line 6))
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2->-r container/conductor-build/conductor-requirements.txt (line 6))
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
Collecting certifi>=2017.4.17 (from requests>=2->-r container/conductor-build/conductor-requirements.txt (line 6))
  Downloading certifi-2017.4.17-py2.py3-none-any.whl (375kB)
Collecting ruamel.ordereddict; platform_python_implementation == "CPython" and python_version <= "2.7" (from ruamel.yaml>=0.14.2->-r container/conductor-build/conductor-requirements.txt (line 7))
  Downloading ruamel.ordereddict-0.4.9-cp27-cp27mu-manylinux1_x86_64.whl (99kB)
Collecting MarkupSafe>=0.23 (from jinja2->ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
  Downloading MarkupSafe-1.0.tar.gz
Requirement already satisfied: pyasn1>=0.1.7 in /usr/local/lib/python2.7/dist-packages (from paramiko->ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
Requirement already satisfied: cryptography>=1.1 in /usr/local/lib/python2.7/dist-packages (from paramiko->ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
Collecting python-dateutil (from kubernetes~=1.0.0->openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
Collecting oauth2client (from kubernetes~=1.0.0->openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading oauth2client-4.1.1-py2.py3-none-any.whl (185kB)
Collecting functools32; python_version == "2.7" (from jsonschema<3,>=2.5.1->docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading functools32-3.2.3-2.zip
Collecting docker-pycreds>=0.2.1 (from docker<3.0,>=2.2.1->docker-compose>=1.7->-r container/conductor-build/conductor-requirements.txt (line 5))
  Downloading docker_pycreds-0.2.1-py2.py3-none-any.whl
Requirement already satisfied: asn1crypto>=0.21.0 in /usr/local/lib/python2.7/dist-packages (from cryptography>=1.1->paramiko->ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
Requirement already satisfied: cffi>=1.7 in /usr/local/lib/python2.7/dist-packages (from cryptography>=1.1->paramiko->ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
Collecting rsa>=3.1.4 (from oauth2client->kubernetes~=1.0.0->openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading rsa-3.4.2-py2.py3-none-any.whl (46kB)
Collecting httplib2>=0.9.1 (from oauth2client->kubernetes~=1.0.0->openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading httplib2-0.10.3.tar.gz (204kB)
Collecting pyasn1-modules>=0.0.5 (from oauth2client->kubernetes~=1.0.0->openshift->-r container/conductor-build/conductor-requirements.txt (line 3))
  Downloading pyasn1_modules-0.0.9-py2.py3-none-any.whl (60kB)
Requirement already satisfied: pycparser in /usr/local/lib/python2.7/dist-packages (from cffi>=1.7->cryptography>=1.1->paramiko->ansible>=2.3.0->-r container/conductor-build/conductor-requirements.txt (line 2))
Building wheels for collected packages: ansible, PyYAML, python-string-utils, pycrypto, dockerpty, texttable, backports.ssl-match-hostname, docopt, websocket-client, MarkupSafe,functools32, httplib2
  Running setup.py bdist_wheel for ansible: started
  Running setup.py bdist_wheel for ansible: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/db/42/8c/a00fdd1e70acccc3f3b27eb4265cbfcccb5f6a52a4b9195403
  Running setup.py bdist_wheel for PyYAML: started
  Running setup.py bdist_wheel for PyYAML: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/2c/f7/79/13f3a12cd723892437c0cfbde1230ab4d82947ff7b3839a4fc
  Running setup.py bdist_wheel for python-string-utils: started
  Running setup.py bdist_wheel for python-string-utils: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/d0/1e/51/115797342efee448467a3d92203678d1d690772d25c7057ee1
  Running setup.py bdist_wheel for pycrypto: started
  Running setup.py bdist_wheel for pycrypto: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/80/1f/94/f76e9746864f198eb0e304aeec319159fa41b082f61281ffce
  Running setup.py bdist_wheel for dockerpty: started
  Running setup.py bdist_wheel for dockerpty: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/ae/d5/14/a25cbb003bd70ffefba0fdfbd5a5c4ea4d2a11bde7736f7482
  Running setup.py bdist_wheel for texttable: started
  Running setup.py bdist_wheel for texttable: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/63/d6/7c/2a14851751d06bbfa54b7339678df0939d123b26df88edd882
  Running setup.py bdist_wheel for backports.ssl-match-hostname: started
  Running setup.py bdist_wheel for backports.ssl-match-hostname: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/5d/72/36/b2a31507b613967b728edc33378a5ff2ada0f62855b93c5ae1
  Running setup.py bdist_wheel for docopt: started
  Running setup.py bdist_wheel for docopt: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/b2/16/5f/c33a2bb5f2dce71205f8e65cbfd05647d79d441282be31fd82
  Running setup.py bdist_wheel for websocket-client: started
  Running setup.py bdist_wheel for websocket-client: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/d1/5e/dd/93da015a0ecc8375278b05ad7f0452eff574a044bcea2a95d2
  Running setup.py bdist_wheel for MarkupSafe: started
  Running setup.py bdist_wheel for MarkupSafe: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/88/a7/30/e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57
  Running setup.py bdist_wheel for functools32: started
  Running setup.py bdist_wheel for functools32: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/3c/d0/09/cd78d0ff4d6cfecfbd730782a7815a4571cd2cd4d2ed6e69d9
  Running setup.py bdist_wheel for httplib2: started
  Running setup.py bdist_wheel for httplib2: finished with status 'done'
  Stored in directory: /root/.cache/pip/wheels/ca/ac/5f/749651f7925b231103f5316cacca82a487810c22d30f011c0c
Successfully built ansible PyYAML python-string-utils pycrypto dockerpty texttable backports.ssl-match-hostname docopt websocket-client MarkupSafe functools32 httplib2
Installing collected packages: MarkupSafe, jinja2, PyYAML, paramiko, pycrypto, ansible, dictdiffer, python-dateutil, rsa, httplib2, pyasn1-modules, oauth2client, backports.ssl-match-hostname, websocket-client, certifi, kubernetes, python-string-utils, ruamel.ordereddict, ruamel.yaml, openshift, dockerpty, texttable, cached-property, functools32, jsonschema, docker-pycreds, chardet, requests, docker, docopt, colorama, docker-compose, structlog
  Running setup.py install for openshift: started
    Running setup.py install for openshift: finished with status 'done'
Successfully installed MarkupSafe-1.0 PyYAML-3.12 ansible-2.3.1.0 backports.ssl-match-hostname-3.5.0.1 cached-property-1.3.0 certifi-2017.4.17 chardet-3.0.4 colorama-0.3.9 dictdiffer-0.6.1 docker-2.3.0 docker-compose-1.13.0 docker-pycreds-0.2.1 dockerpty-0.4.1 docopt-0.6.2 functools32-3.2.3.post2 httplib2-0.10.3 jinja2-2.9.6 jsonschema-2.6.0 kubernetes-1.0.2 oauth2client-4.1.1 openshift-1.0.0-snapshot paramiko-2.1.2 pyasn1-modules-0.0.9 pycrypto-2.6.1 python-dateutil-2.6.0 python-string-utils-0.6.0 requests-2.17.3 rsa-3.4.2 ruamel.ordereddict-0.4.9 ruamel.yaml-0.15.5 structlog-17.2.0 texttable-0.8.8 websocket-client-0.40.0
running develop
running egg_info
creating ansible_container.egg-info
writing ansible_container.egg-info/PKG-INFO
writing top-level names to ansible_container.egg-info/top_level.txt
writing dependency_links to ansible_container.egg-info/dependency_links.txt
writing entry points to ansible_container.egg-info/entry_points.txt
writing manifest file 'ansible_container.egg-info/SOURCES.txt'
reading manifest file 'ansible_container.egg-info/SOURCES.txt'
writing manifest file 'ansible_container.egg-info/SOURCES.txt'
running build_ext
Creating /usr/local/lib/python2.7/dist-packages/ansible-container.egg-link (link to .)
Adding ansible-container 0.9.1 to easy-install.pth file
Installing conductor script to /usr/local/bin

Installed /_ansible
Processing dependencies for ansible-container==0.9.1
Finished processing dependencies for ansible-container==0.9.1
- downloading role 'kubernetes-modules', owned by ansible
- downloading role from https://github.com/ansible/ansible-kubernetes-modules/archive/master.tar.gz
- extracting kubernetes-modules to /etc/ansible/roles/kubernetes-modules
- kubernetes-modules (master) was installed successfully
 ---> ad9bbe58b629
Removing intermediate container f47cb6fbe026
Step 8/10 : COPY /build-src /_ansible/build
 ---> 7f9fa253e5fd
Removing intermediate container 5b9a95d8a489
Step 9/10 : RUN ( test -f /_ansible/build/ansible-requirements.txt && pip install --no-cache-dir -r /_ansible/build/ansible-requirements.txt || true ) &&     ( test -f /_ansible/build/requirements.yml && ansible-galaxy install -p /etc/ansible/roles -r /_ansible/build/requirements.yml || true ) &&     ( test -f /_ansible/build/ansible.cfg && cp /_ansible/build/ansible.cfg /etc/ansible/ansible.cfg || true)
 ---> Running in 21d5cfa42a5c
 ---> 8779a245913b
Removing intermediate container 21d5cfa42a5c
Step 10/10 : VOLUME /usr
 ---> Running in 02563e245e16
 ---> 0870a373a5fd
Removing intermediate container 02563e245e16
Successfully built 0870a373a5fd
2017-06-09T20:55:35.333498 Cleaning up temporary directory [container.utils.temp] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/utils/temp.py caller_func=__exit__ caller_line=22 path=/var/folders/lw/p3tp0mb117ngnrtq7fy12_kw0000gn/T/tmpGSM6kp
2017-06-09T20:55:35.335625 Config settings                [container.core] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/core.py caller_func=hostcmd_build caller_line=160 config=<container.config.AnsibleContainerConfig object at 0x10c931710> rawsettings={"conductor_base": "tissuemaps/base", "pwd": "/tmp/test"} settings={"conductor_base": "tissuemaps/base", "pwd": "/tmp/test"} tconf=<class 'container.config.AnsibleContainerConfig'>
2017-06-09T20:55:35.336371 Call: Engine.run_conductor     [container.docker.engine] args=('build', {'services': ordereddict([('db', ordereddict([('from', 'tissuemaps/base'), ('roles', [ordereddict([('role', 'postgresql'), ('postgresql_users', [ordereddict([('name', 'foo')])])])])]))]), 'version': '2', 'defaults': ordereddict([]), 'settings': ordereddict([('conductor_base', 'tissuemaps/base'), ('pwd', '/tmp/test')])}, '/tmp/test', {'with_volumes': [], 'cache': False, 'local_python': False, 'with_variables': [], 'selinux': True, 'purge_last': True, 'subcommand': 'build', 'no_conductor_runtime': True, 'devel': False, 'roles_path': None, 'ansible_options': u'', 'flatten': False, 'debug': True, 'save_conductor_container': False}) caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=Engine.run_conductor caller_line=23 kwargs={}
2017-06-09T20:55:35.339957 Docker run:                    [container.docker.engine] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.py caller_func=run_conductor caller_line=299 image=u'sha256:0870a373a5fd80fc8090996bae57fca6db5aa00cc213c590803e13fb81703097' params={'name': u'test_conductor', 'cap_add': ['SYS_ADMIN'], 'environment': {'DOCKER_HOST': 'unix:///var/run/docker.sock', 'ANSIBLE_ROLES_PATH': '/src/roles:/etc/ansible/roles'}, 'working_dir': '/src', 'command': ['conductor', 'build', '--project-name', 'test', '--engine', 'docker', '--params', u'eyJ3aXRoX3ZvbHVtZXMiOiBbXSwgImNhY2hlIjogZmFsc2UsICJsb2NhbF9weXRob24iOiBmYWxzZSwgIndpdGhfdmFyaWFibGVzIjogW10sICJzZWxpbnV4IjogdHJ1ZSwgInB1cmdlX2xhc3QiOiB0cnVlLCAic3ViY29tbWFuZCI6ICJidWlsZCIsICJub19jb25kdWN0b3JfcnVudGltZSI6IHRydWUsICJkZXZlbCI6IGZhbHNlLCAicm9sZXNfcGF0aCI6IG51bGwsICJhbnNpYmxlX29wdGlvbnMiOiAiIiwgImZsYXR0ZW4iOiBmYWxzZSwgImRlYnVnIjogdHJ1ZSwgInNhdmVfY29uZHVjdG9yX2NvbnRhaW5lciI6IGZhbHNlfQ==', '--config', u'eyJzZXJ2aWNlcyI6IFtbImRiIiwgeyJmcm9tIjogInRpc3N1ZW1hcHMvYmFzZSIsICJyb2xlcyI6IFt7InJvbGUiOiAicG9zdGdyZXNxbCIsICJwb3N0Z3Jlc3FsX3VzZXJzIjogW3sibmFtZSI6ICJmb28ifV19XX1dXSwgInZlcnNpb24iOiAiMiIsICJkZWZhdWx0cyI6IFtdLCAic2V0dGluZ3MiOiBbWyJjb25kdWN0b3JfYmFzZSIsICJ0aXNzdWVtYXBzL2Jhc2UiXSwgWyJwd2QiLCAiL3RtcC90ZXN0Il1dfQ==', '--encoding', 'b64json'], 'user': 'root', 'volumes': {'/var/run/docker.sock': {'bind': '/var/run/docker.sock', 'mode': 'rw'}, '/tmp/test': {'bind': '/src', 'mode': 'ro'}}, 'detach': True, 'privileged': True}
Parsing conductor CLI args.
2017-06-09T18:55:39.558845 Processing defaults section... [container.config] caller_file=/_ansible/container/config.py caller_func=_process_defaults caller_line=266
2017-06-09T18:55:39.560441 Processing section...          [container.config] caller_file=/_ansible/container/config.py caller_func=_process_top_level_sections caller_line=275 section=volumes
2017-06-09T18:55:39.562044 Processing section...          [container.config] caller_file=/_ansible/container/config.py caller_func=_process_top_level_sections caller_line=275 section=registries
2017-06-09T18:55:39.563741 Processing service...          [container.config] caller_file=/_ansible/container/config.py caller_func=_process_services caller_line=281 service=u'db' service_data={u'from': u'tissuemaps/base', u'roles': [{u'role': u'postgresql', u'postgresql_users': [{u'name': u'foo'}]}]}
Traceback (most recent call last):
  File "/usr/local/bin/conductor", line 11, in <module>
    load_entry_point('ansible-container', 'console_scripts', 'conductor')()
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/cli.py", line 351, in conductor_commandline
    conductor_config = AnsibleContainerConductorConfig(list_to_ordereddict(containers_config))
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/config.py", line 238, in __init__
    self._process_services()
  File "/_ansible/container/config.py", line 298, in _process_services
    role_metadata = get_metadata_from_role(role_name)
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/utils/__init__.py", line 265, in get_metadata_from_role
    return get_content_from_role(role_name, os.path.join('meta', 'container.yml'))
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/utils/__init__.py", line 254, in get_content_from_role
    role_path = resolve_role_to_path(role_name)
  File "/_ansible/container/__init__.py", line 19, in __wrapped__
    return fn(*args, **kwargs)
  File "/_ansible/container/utils/__init__.py", line 203, in resolve_role_to_path
    loader=loader)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/role/include.py", line 60, in load
    return ri.load_data(data, variable_manager=variable_manager, loader=loader)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/base.py", line 241, in load_data
    ds = self.preprocess_data(ds)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/role/definition.py", line 95, in preprocess_data
    (role_name, role_path) = self._load_role_path(role_name)
  File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/role/definition.py", line 188, in _load_role_path
    raise AnsibleError("the role '%s' was not found in %s" % (role_name, ":".join(role_search_paths)), obj=self._ds)
ansible.errors.AnsibleError: the role 'postgresql' was not found in ./roles:/src/roles:/etc/ansible/roles:.
2017-06-09T20:55:40.205714 Conductor terminated. Cleaning up. [container.docker.engine] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/docker/engine.pycaller_func=await_conductor_command caller_line=326 command_rc=1 conductor_id=u'7c445234952a9876c302d4985d91a6544819977963430d34c73b88d529f7bd25' save_container=False
2017-06-09T20:55:40.782862 Conductor exited with status 1 [container.cli] caller_file=/Users/mdh/Envs/deploy/lib/python2.7/site-packages/container/cli.py caller_func=__call__ call

@Lowess
Copy link
Contributor

Lowess commented Jun 26, 2017

I am actually affected by this bug as well, LMK if you need a stacktrace from my hand.

I am hacking this from the beginning using a pip install statement in my get-vault-password.sh script which retrieves the vault password from AWS Dynamodb using credstash which is ugly and looks like this:

# ansible.cfg
[defaults]
vault_password_file = get-vault-key.sh
# get-vault-key.sh
#!/usr/bin/env bash

which credstash > /dev/null
if [[ $? == 1 ]]; then
  pip install --no-cache-dir  -U credstash > /dev/null 2>&1 || true
fi

credstash "$@" -t ${REGION}-CredStash-GumRef-${TEAM} get ansible-vault-key

This is definitely blocking for us because we need to use --projet-path option on Jenkins.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants