doc/researchAnsible: documented the work to setup and start a Jenkins
The topic Jcasc was already handled. With this commit we are able to setup a Jenkins by using docker-compose. Signed-off-by: Marc Mattmüller <marc.mattmueller@netmodule.com>
This commit is contained in:
parent
2962890ed3
commit
091f8f8e0d
|
|
@ -911,6 +911,127 @@ After Lauching the job, I checked the docker images directly on the server:
|
|||
Oh yes, this works too - **Party!**
|
||||
|
||||
|
||||
Job to Start a Jenkins Instance
|
||||
*******************************
|
||||
See the following matching table about what we have done so far and what is needed:
|
||||
|
||||
============================================= =========================================== =======
|
||||
What we already have What to we need Ready
|
||||
============================================= =========================================== =======
|
||||
Configured a VM / host a host x
|
||||
SSH key pair for access to services ssh key for git access x
|
||||
Clone a git repository the repository cloned x
|
||||
Build the Jenkins docker image the jenkins controller docker image x
|
||||
Jcasc from the CoreOS proof of concept the docker compose files
|
||||
data for known_hosts and authorization authorization and known_host files
|
||||
nexus user and password passwords encrypted for ssh, users, nexus
|
||||
============================================= =========================================== =======
|
||||
|
||||
From this table we see that we are nearly ready. So these are the tasks to be performed until we have all necessary
|
||||
things to deploy the new Jenkins with a playbook:
|
||||
|
||||
#. Prepare the nwl-ci repository by adding the Jenkins Controller parts according this tree:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
.
|
||||
├── docker-compose.yaml
|
||||
└── docker
|
||||
└── nwl-cicd.yaml
|
||||
|
||||
#. Create a playbook performing tasks within the cloned nwl-ci repository. Tasks like:
|
||||
|
||||
#) adding new directories on the target host:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
.
|
||||
├── jenkins_home
|
||||
├── secrets
|
||||
│ ├── pw
|
||||
│ ├── .cacerts
|
||||
│ └── .ssh
|
||||
└── yocto-downloads
|
||||
|
||||
#) creating the following content on the target host:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
.
|
||||
├── docker-compose.yaml
|
||||
├── docker
|
||||
│ ├── nwl-cicd.yaml
|
||||
│ ├── Dockerfile
|
||||
│ └── plugins.txt
|
||||
├── jenkins_home
|
||||
├── jobs
|
||||
│ ├── Jenkinsfile_Build
|
||||
│ ├── Jenkinsfile_Common
|
||||
│ └── nwlTargets
|
||||
├── secrets
|
||||
│ ├── pw
|
||||
│ │ ├── gitSsh --> testvm_ed25519
|
||||
│ │ ├── jenkinsUserAdmin
|
||||
│ │ ├── jenkinsUserDeveloper
|
||||
│ │ └── nexusUser
|
||||
│ ├── .cacerts
|
||||
│ └── .ssh
|
||||
│ ├── authorized_keys
|
||||
│ ├── known_hosts
|
||||
│ ├── testvm_ed25519
|
||||
│ └── testvm_ed25519.pub
|
||||
└── yocto-downloads
|
||||
|
||||
.. note::
|
||||
As a reminder you can create the pw using the AWX vault as follows:
|
||||
|
||||
``echo -n 'vmSSHpassphrase!' | ansible-vault encrypt_string --ask-vault-pass``
|
||||
|
||||
#. Create a playbook bringing the Jenkins instance up
|
||||
#. **NOTE:** Before doing the next step you have to commit and push your changes and then launch the job
|
||||
*Clone CI Repo* to update the repository on the server
|
||||
#. Create a new Job Templates in AWX for the newly created playbooks:
|
||||
|
||||
* Select the menu *Resources* >> *Templates* and click *Add*:
|
||||
|
||||
- Enter a name, e.g. *Setup CI Environment*
|
||||
- Enter a description, e.g. *Setting up a Jenkins CI environment using docker-compose*
|
||||
- Select ``Run`` as Job Type
|
||||
- Select ``Testenv`` as Organization
|
||||
- Select ``Production`` as Inventory
|
||||
- Select ``NWL CI`` as Project
|
||||
- Select ``playbooks/getting_started/setup-nwl-jenkins.yaml`` as Playbook
|
||||
- Select the following:
|
||||
|
||||
+ Switch the drop-down of *Selected Category* to Machine and then check ``Machine Access``
|
||||
+ Switch the drop-down of *Selected Category* to Vault and then check ``Vault Password | nwl-vault``
|
||||
|
||||
- Press Save
|
||||
|
||||
* Select the menu *Resources* >> *Templates* and click *Add*:
|
||||
|
||||
- Enter a name, e.g. *Start-Stop CI Instance*
|
||||
- Enter a description, e.g. *Start or Stop the Jenkins CI instance*
|
||||
- Select ``Run`` as Job Type
|
||||
- Select ``Testenv`` as Organization
|
||||
- Select ``Production`` as Inventory
|
||||
- Select ``NWL CI`` as Project
|
||||
- Select ``playbooks/getting_started/start-stop-nwl-jenkins.yml`` as Playbook
|
||||
- Select the following:
|
||||
|
||||
+ Switch the drop-down of *Selected Category* to Machine and then check ``Machine Access``
|
||||
|
||||
- Enter ``power_status: "start"`` in Variables and check *Prompt on launch*
|
||||
|
||||
+ Change the variable at launch time to ``power_status: "stop"`` to bring the instance down
|
||||
|
||||
- Press Save
|
||||
|
||||
#. Launch the Jjob *Setup CI Environment*
|
||||
#. Bring the instance up by launching the job *Start-Stop CI Instance* (keep the variable as it is)
|
||||
|
||||
|
||||
|
||||
|
||||
Combining Playbooks
|
||||
###################
|
||||
|
|
|
|||
Loading…
Reference in New Issue