Select Git revision
repository-nexus.yaml
Jaromír Hradil authored
repository-nexus.yaml 6.12 KiB
---
- name: Sonatype Nexus deployment
hosts: master
vars:
nexus_url: "https://{{ nexus_hostname }}/service/rest/v1"
nexus_admin_password: "{{ lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'nexus_admin_password:value') | join('/'), token_validate=false) }}"
nexus_binder_password: "{{ lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'nexus_binder_password:value') | join('/'), token_validate=false) }}"
nexus_notebooks_password: "{{ lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'nexus_notebooks_password:value') | join('/'),
token_validate=false) }}"
nexus_writer_password: "{{ lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'nexus_writer_password:value') | join('/'), token_validate=false) }}"
nexus_blobstore_name: default
nexus_blobstore_type: file
nexus_repository_name: container-notebooks
nexus_docker_port: 8082
become: true
tasks:
- name: Create Nexus configuration file on master
vars:
name: nexus
template:
src: templates/nexus.yaml
dest: /tmp/nexus.yaml
mode: 0600
- name: Deploy/update Nexus instance
command: kubectl apply -f /tmp/nexus.yaml
environment:
KUBECONFIG: /etc/kubernetes/admin.conf
PATH: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
when: true
- name: Wait for Nexus pod ready
command: kubectl wait pod --all --namespace nexus --for condition=ready --timeout=5m
environment:
KUBECONFIG: /etc/kubernetes/admin.conf
changed_when: false
when: true
- name: Wait for Nexus REST API
uri:
url: "{{ nexus_url }}/status"
status_code: 200
method: GET
register: _result
until: _result.status == 200
retries: 120
delay: 15
- name: Check the admin password
uri:
url: "{{ nexus_url }}/status"
force_basic_auth: true
method: HEAD
user: 'admin'
password: "{{ nexus_admin_password }}"
status_code: 200, 401
register: nexus_admin_password_check
- name: Admin password setup
when:
- nexus_admin_password_check.status == 401
block:
- name: Get initial admin password
shell: 'kubectl exec -it -n nexus $(kubectl get pod -n nexus -l app=sonatype-nexus -o name) -- cat /nexus-data/admin.password'
register: nexus_admin_password_initial
changed_when: false
environment:
KUBECONFIG: /etc/kubernetes/admin.conf
- name: Set the admin password
uri:
url: "{{ nexus_url }}/security/users/admin/change-password"
force_basic_auth: true
headers:
Content-Type: text/plain
method: PUT