1 changed files with 85 additions and 0 deletions
@ -0,0 +1,85 @@ |
|||||
|
# Using this Ansible role from Jenkins |
||||
|
|
||||
|
To use this role from Jenkins, you will need to: |
||||
|
|
||||
|
- Create a custom Jenkins Slave image |
||||
|
- Register this image in the Jenkins configuration |
||||
|
- Commit your inventory and playbooks in a GIT repository |
||||
|
- Create an Ansible Vault to store your 3scale Access Token and OIDC issuer endpoint |
||||
|
- Create a Jenkins pipeline |
||||
|
|
||||
|
## Create a custom Jenkins Slave image |
||||
|
|
||||
|
First, create a Dockerfile containing: |
||||
|
|
||||
|
```dockerfile |
||||
|
FROM openshift3/jenkins-slave-base-rhel7:v3.11 |
||||
|
|
||||
|
MAINTAINER Nicolas Masse <nmasse@redhat.com> |
||||
|
|
||||
|
# Labels consumed by Red Hat build service |
||||
|
LABEL name="openshift3/jenkins-agent-ansible-26-rhel7" \ |
||||
|
version="3.11" \ |
||||
|
architecture="x86_64" \ |
||||
|
io.k8s.display-name="Jenkins Agent Ansible" \ |
||||
|
io.k8s.description="The jenkins agent ansible image has the Ansible engine on top of the jenkins slave base image." \ |
||||
|
io.openshift.tags="openshift,jenkins,agent,ansible" |
||||
|
|
||||
|
USER root |
||||
|
RUN yum install -y --enablerepo=rhel-7-server-ansible-2.6-rpms ansible && \ |
||||
|
yum install -y --enablerepo=rhel-server-rhscl-7-rpms python27-python-pip && \ |
||||
|
scl enable python27 "pip install --install-option='--install-purelib=/usr/lib/python2.7/site-packages/' jinja2" && \ |
||||
|
yum clean all && \ |
||||
|
rm -rf /var/cache/yum && \ |
||||
|
chown -R 1001:0 $HOME && \ |
||||
|
chmod -R g+rw $HOME |
||||
|
|
||||
|
USER 1001 |
||||
|
``` |
||||
|
|
||||
|
Create an OpenShift project to hold the image and BuildConfig we will create: |
||||
|
|
||||
|
```sh |
||||
|
oc new-project jenkins-ansible |
||||
|
``` |
||||
|
|
||||
|
Then, import the Jenkins base image in the current project: |
||||
|
|
||||
|
```sh |
||||
|
oc import-image jenkins-slave-base-rhel7:v3.11 --from=registry.access.redhat.com/openshift3/jenkins-slave-base-rhel7:v3.11 --scheduled --confirm |
||||
|
``` |
||||
|
|
||||
|
Replace the `v3.11` tag with the OpenShift version you are currently running. |
||||
|
|
||||
|
Create a BuildConfig based on this ImageStream and the Dockerfile created before. |
||||
|
|
||||
|
```sh |
||||
|
oc new-build -D - --name=jenkins-agent-ansible-26-rhel7 --image-stream=jenkins-slave-base-rhel7:v3.11 --to=jenkins-agent-ansible-26-rhel7:latest < Dockerfile |
||||
|
``` |
||||
|
|
||||
|
Wait for the BuildConfig to complete and tag the new image in the `openshift` namespace: |
||||
|
|
||||
|
```sh |
||||
|
oc tag jenkins-agent-ansible-26-rhel7:latest openshift/jenkins-agent-ansible-26-rhel7:latest |
||||
|
``` |
||||
|
|
||||
|
## Register the image in the Jenkins configuration |
||||
|
|
||||
|
- Connect to your Jenkins instance |
||||
|
- Click **Manage Jenkins** > **Configure System** |
||||
|
- Scroll down to the **Cloud** section |
||||
|
- Scroll down and click **Add Pod Template** and select **Kubernetes Pod Template** |
||||
|
- Fill in the Kubernetes Pod Template with the following information: |
||||
|
- **Name**: `ansible` |
||||
|
- **Labels**: `ansible` |
||||
|
- **Timeout in seconds for Jenkins connection**: `100` |
||||
|
- Click **Add Container** and select **Container Template** |
||||
|
- Fill in the Container Template with the following information: |
||||
|
- **Name**: `jnlp` |
||||
|
- **Docker image**: `docker-registry.default.svc:5000/openshift/jenkins-agent-ansible-26-rhel7:latest` |
||||
|
- **Always pull image**: *checked* |
||||
|
- **Working directory**: `/tmp` |
||||
|
- **Command to run**: *empty* |
||||
|
- **Arguments to pass to the command**: `${computer.jnlpmac} ${computer.name}` |
||||
|
- **Allocate pseudo-TTY**: *unchecked* |
||||
|
- Scroll down and click **Save** |
||||
Loading…
Reference in new issue