mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 02:47:35 -02:30
Merge pull request #30 from ryanpetrello/fix-isolated-awx
fix tower-expect -> awx-expect for isolated tower builds
This commit is contained in:
@@ -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)))
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -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',
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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`.
|
||||||
|
|||||||
3
tools/docker-isolated/awx-expect
Executable file
3
tools/docker-isolated/awx-expect
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
. /venv/awx/bin/activate
|
||||||
|
exec env TOWER_LIB_DIRECTORY=/awx_lib /awx_devel/run.py "$@"
|
||||||
@@ -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
4
tools/scripts/awx-expect
Executable 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 "$@"
|
||||||
@@ -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 "$@"
|
|
||||||
Reference in New Issue
Block a user