Merge pull request #30 from ryanpetrello/fix-isolated-awx

fix tower-expect -> awx-expect for isolated tower builds
This commit is contained in:
Ryan Petrello
2017-07-24 16:22:02 -04:00
committed by GitHub
14 changed files with 23 additions and 23 deletions

View File

@@ -170,7 +170,7 @@ class IsolatedManager(object):
# - sets up a temporary directory for proot/bwrap (if necessary) # - sets up a temporary directory for proot/bwrap (if necessary)
# - copies encrypted job data from the controlling host to the isolated host (with rsync) # - copies encrypted job data from the controlling host to the isolated host (with rsync)
# - writes the encryption secret to a named pipe on the isolated host # - writes the encryption secret to a named pipe on the isolated host
# - launches the isolated playbook runner via `tower-expect start <job-id>` # - launches the isolated playbook runner via `awx-expect start <job-id>`
args = self._build_args('run_isolated.yml', '%s,' % self.host, extra_vars) args = self._build_args('run_isolated.yml', '%s,' % self.host, extra_vars)
if self.instance.verbosity: if self.instance.verbosity:
args.append('-%s' % ('v' * min(5, self.instance.verbosity))) args.append('-%s' % ('v' * min(5, self.instance.verbosity)))

View File

@@ -10,7 +10,7 @@
tasks: tasks:
- name: Determine if daemon process is alive. - name: Determine if daemon process is alive.
shell: "tower-expect is-alive {{src}}" shell: "awx-expect is-alive {{src}}"
register: is_alive register: is_alive
ignore_errors: true ignore_errors: true

View File

@@ -11,7 +11,7 @@
tasks: tasks:
- name: cancel the job - name: cancel the job
command: "tower-expect stop {{private_data_dir}}" command: "awx-expect stop {{private_data_dir}}"
ignore_errors: yes ignore_errors: yes
- name: remove build artifacts - name: remove build artifacts

View File

@@ -29,7 +29,7 @@
command: "mkfifo {{src}}/env" command: "mkfifo {{src}}/env"
- name: spawn the playbook - name: spawn the playbook
command: "tower-expect start {{src}}" command: "awx-expect start {{src}}"
- name: write the secret environment data - name: write the secret environment data
mkfifo: mkfifo:

View File

@@ -26,7 +26,7 @@ def main():
) )
try: try:
version = subprocess.check_output( version = subprocess.check_output(
['tower-expect', '--version'], ['awx-expect', '--version'],
stderr=subprocess.STDOUT stderr=subprocess.STDOUT
).strip() ).strip()
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:

View File

@@ -51,7 +51,7 @@ def main():
try: try:
re_match = re.match(r'\/tmp\/ansible_tower_\d+_.+', path) re_match = re.match(r'\/tmp\/ansible_tower_\d+_.+', path)
if re_match is not None: if re_match is not None:
if subprocess.check_call(['tower-expect', 'is-alive', path]) == 0: if subprocess.check_call(['awx-expect', 'is-alive', path]) == 0:
continue continue
else: else:
module.debug('Deleting path {} its job has completed.'.format(path)) module.debug('Deleting path {} its job has completed.'.format(path))

View File

@@ -55,7 +55,7 @@ class sdist_isolated(sdist):
'include Makefile', 'include Makefile',
'include awx/__init__.py', 'include awx/__init__.py',
'include awx/main/isolated/run.py', 'include awx/main/isolated/run.py',
'include tools/scripts/tower-expect', 'include tools/scripts/awx-expect',
'include requirements/requirements_isolated.txt', 'include requirements/requirements_isolated.txt',
'recursive-include awx/lib *.py', 'recursive-include awx/lib *.py',
] ]

View File

@@ -1,17 +1,17 @@
version: '3' version: '3'
services: services:
# Primary Tower Development Container link # Primary Tower Development Container link
tower: awx:
environment: environment:
EXTRA_GROUP_QUEUES: thepentagon EXTRA_GROUP_QUEUES: thepentagon
links: links:
- isolated - isolated
# Isolated Rampart Container # Isolated Rampart Container
isolated: isolated:
image: gcr.io/ansible-tower-engineering/tower_isolated:${TAG} image: gcr.io/ansible-tower-engineering/awx_isolated:${TAG}
hostname: isolated hostname: isolated
volumes: volumes:
- "../awx/main/isolated:/tower_devel" - "../awx/main/isolated:/awx_devel"
- "../awx/lib:/tower_lib" - "../awx/lib:/awx_lib"
- "/sys/fs/cgroup:/sys/fs/cgroup:ro" - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
privileged: true privileged: true

View File

@@ -17,7 +17,7 @@ ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8 ENV LC_ALL en_US.UTF-8
WORKDIR / WORKDIR /
EXPOSE 22 EXPOSE 22
ADD tools/docker-isolated/tower-expect /usr/local/bin/tower-expect ADD tools/docker-isolated/awx-expect /usr/local/bin/awx-expect
RUN rm -f /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_rsa_key RUN rm -f /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_ecdsa_key RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_ecdsa_key

View File

@@ -1,7 +1,7 @@
## Instructions on using an isolated node ## Instructions on using an isolated node
The building of the isolated node is done in the `make docker-compose-build` The building of the isolated node is done in the `make docker-compose-build`
target. Its image uses a different tag from the tools_tower container. target. Its image uses a different tag from the tools_awx container.
Given that the images are built, you can run the combined docker compose target. This uses Given that the images are built, you can run the combined docker compose target. This uses
the base `docker-compose.yml` with modifications found in `docker-isolated-override.yml`. the base `docker-compose.yml` with modifications found in `docker-isolated-override.yml`.
@@ -12,7 +12,7 @@ base branch is. For example:
make docker-isolated COMPOSE_TAG=devel make docker-isolated COMPOSE_TAG=devel
``` ```
This will automatically exchange the keys in order for the `tools_tower_1` This will automatically exchange the keys in order for the `tools_awx_1`
container to access the `tools_isolated_1` container over ssh. container to access the `tools_isolated_1` container over ssh.
After that, it will bring up all the containers like the normal docker-compose After that, it will bring up all the containers like the normal docker-compose
workflow. workflow.
@@ -61,7 +61,7 @@ Example location of a private data directory:
The following command would run the playbook corresponding to that job. The following command would run the playbook corresponding to that job.
```bash ```bash
tower-expect start /tmp/ansible_tower_29_OM6Mnx/ awx-expect start /tmp/ansible_tower_29_OM6Mnx/
``` ```
Other tower-expect commands include `start`, `is-alive`, and `stop`. Other awx-expect commands include `start`, `is-alive`, and `stop`.

View File

@@ -0,0 +1,3 @@
#!/bin/bash
. /venv/awx/bin/activate
exec env TOWER_LIB_DIRECTORY=/awx_lib /awx_devel/run.py "$@"

View File

@@ -1,3 +0,0 @@
#!/bin/bash
. /venv/tower/bin/activate
exec env TOWER_LIB_DIRECTORY=/tower_lib /tower_devel/run.py "$@"

4
tools/scripts/awx-expect Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
AWX_LIB=`/var/lib/awx/venv/awx/bin/python -c 'import os, awx; print os.path.dirname(awx.__file__)'`
. /var/lib/awx/venv/awx/bin/activate
exec env TOWER_LIB_DIRECTORY=$AWX_LIB/lib /var/lib/awx/venv/awx/bin/python $AWX_LIB/main/isolated/run.pyc "$@"

View File

@@ -1,4 +0,0 @@
#!/bin/bash
AWX_LIB=`/var/lib/awx/venv/tower/bin/python -c 'import os, awx; print os.path.dirname(awx.__file__)'`
. /var/lib/awx/venv/tower/bin/activate
exec env TOWER_LIB_DIRECTORY=$AWX_LIB/lib /var/lib/awx/venv/tower/bin/python $AWX_LIB/main/isolated/run.pyc "$@"