mirror of
https://github.com/ansible/awx.git
synced 2026-02-01 09:38:10 -03:30
Merge pull request #9957 from jbradberry/isolated-removal
Isolated removal SUMMARY Removal of the isolated nodes feature. ISSUE TYPE Feature Pull Request COMPONENT NAME API AWX VERSION Reviewed-by: Alan Rominger <arominge@redhat.com> Reviewed-by: Jeff Bradberry <None> Reviewed-by: Elyézer Rezende <None> Reviewed-by: Bianca Henderson <beeankha@gmail.com>
This commit is contained in:
@@ -58,7 +58,6 @@ LOGGING['loggers']['django_auth_ldap']['handlers'] = ['console']
|
||||
LOGGING['loggers']['social']['handlers'] = ['console']
|
||||
LOGGING['loggers']['system_tracking_migrations']['handlers'] = ['console']
|
||||
LOGGING['loggers']['rbac_migrations']['handlers'] = ['console']
|
||||
LOGGING['loggers']['awx.isolated.manager.playbooks']['handlers'] = ['console']
|
||||
LOGGING['handlers']['callback_receiver'] = {'class': 'logging.NullHandler'}
|
||||
LOGGING['handlers']['task_system'] = {'class': 'logging.NullHandler'}
|
||||
LOGGING['handlers']['tower_warnings'] = {'class': 'logging.NullHandler'}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
version: '2'
|
||||
services:
|
||||
# Primary Tower Development Container link
|
||||
awx:
|
||||
environment:
|
||||
AWX_GROUP_QUEUES: tower,thepentagon
|
||||
links:
|
||||
- isolated
|
||||
# Isolated Rampart Container
|
||||
isolated:
|
||||
image: ${DEV_DOCKER_TAG_BASE}/awx_isolated:${TAG}
|
||||
container_name: tools_isolated_1
|
||||
hostname: isolated
|
||||
volumes:
|
||||
- "../awx/main/isolated:/awx_devel"
|
||||
privileged: true
|
||||
@@ -1,20 +0,0 @@
|
||||
ARG TAG=latest
|
||||
FROM ansible/awx_devel:${TAG}
|
||||
|
||||
RUN dnf install -y gcc python36-devel openssh-server
|
||||
RUN python3 -m ensurepip && pip3 install "virtualenv < 20" ansible-runner
|
||||
RUN dnf remove -y gcc python36-devel && rm -rf /var/cache/dnf
|
||||
|
||||
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 rsa -f /etc/ssh/ssh_host_rsa_key
|
||||
RUN sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
|
||||
RUN sed -i "s/UsePAM.*/UsePAM yes/g" /etc/ssh/sshd_config
|
||||
RUN sed -i "s/#StrictModes.*/StrictModes no/g" /etc/ssh/sshd_config
|
||||
RUN mkdir -p /root/.ssh
|
||||
RUN ln -s /awx_devel/authorized_keys /root/.ssh/authorized_keys
|
||||
|
||||
ENTRYPOINT ["tini", "--"]
|
||||
CMD ["/usr/sbin/sshd", "-D"]
|
||||
|
||||
EXPOSE 22
|
||||
@@ -1,67 +0,0 @@
|
||||
## Instructions on using an isolated node
|
||||
|
||||
The building of the isolated node is done in the `make docker-compose-build`
|
||||
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
|
||||
the base `docker-compose.yml` with modifications found in `docker-isolated-override.yml`.
|
||||
You will still need to give COMPOSE_TAG with whatever your intended
|
||||
base branch is. For example:
|
||||
|
||||
```bash
|
||||
make docker-isolated COMPOSE_TAG=devel
|
||||
```
|
||||
|
||||
This will automatically exchange the keys in order for the `tools_awx_1`
|
||||
container to access the `tools_isolated_1` container over ssh.
|
||||
After that, it will bring up all the containers like the normal docker-compose
|
||||
workflow.
|
||||
|
||||
### Running a job on the Isolated Node
|
||||
|
||||
Create a job template that runs normally. Add the id of the instance
|
||||
group named `thepentagon` to the JT's instance groups. To do this, POST
|
||||
the id (probably id=2) to `/api/v2/job_templates/N/instance_groups/`.
|
||||
After that, run the job template.
|
||||
|
||||
The models are automatically created when running the Makefile target,
|
||||
and they are structured as follows:
|
||||
|
||||
+-------+ +-------------+
|
||||
| tower |<----+ thepentagon |
|
||||
+-------+ +-------------+
|
||||
^ ^
|
||||
| |
|
||||
| |
|
||||
+---+---+ +-----+----+
|
||||
| tower | | isolated |
|
||||
+-------+ +----------+
|
||||
|
||||
The `controller` for the group "thepentagon" and all hosts therein is
|
||||
determined by a ForeignKey within the instance group.
|
||||
|
||||
### Run a playbook
|
||||
|
||||
In order to run an isolated job, associate the instance group `thepentagon` with
|
||||
a job template, inventory, or organization, then run a job that derives from
|
||||
that resource. You should be able to confirm success by inspecting the
|
||||
`instance_group` of the job.
|
||||
|
||||
#### Advanced Manual Testing
|
||||
|
||||
If you want to run a job manually inside of the isolated container with this
|
||||
tooling, you need a private data directory. Normal isolated job runs will
|
||||
clean up their private data directory, but you can temporarily disable this
|
||||
by disabling some parts of the cleanup_isolated.yml playbook.
|
||||
|
||||
Example location of a private data directory:
|
||||
|
||||
`/tmp/awx_29_OM6Mnx/`
|
||||
|
||||
The following command would run the playbook corresponding to that job.
|
||||
|
||||
```bash
|
||||
ansible-runner start /tmp/awx_29_OM6Mnx/ -p some_playbook.yml
|
||||
```
|
||||
|
||||
Other ansible-runner commands include `start`, `is-alive`, and `stop`.
|
||||
Reference in New Issue
Block a user