ProHoster > Blog > Administratioun > Installéieren an konfiguréieren Nexus Sonatype mat der Infrastruktur als Code Approche
Installéieren an konfiguréieren Nexus Sonatype mat der Infrastruktur als Code Approche
Sonatype Nexus ass eng integréiert Plattform duerch déi Entwéckler kënnen Proxy, späicheren a verwalten Java (Maven) Ofhängegkeeten, Docker, Python, Ruby, NPM, Bower Biller, RPM Packagen, gitlfs, Apt, Go, Nuget, a verdeelen hir Software Sécherheet.
Firwat braucht Dir Sonatype Nexus?
Fir privat Artefakte ze späicheren;
Fir Cache Artefakte déi vum Internet erofgeluede ginn;
Artefakte ënnerstëtzt am Basis Sonatype Nexus Package:
Installéiert ansibel pip install ansible op der Aarbechtsstatioun wou d'Spillbuch leeft.
Installéieren geerlingguy.java op der Aarbechtsstatioun wou d'Spillbuch leeft.
Installéieren geerlingguy.apache op der Aarbechtsstatioun wou d'Spillbuch leeft.
Dës Roll gouf getest op CentOS 7, Ubuntu Xenial (16.04) a Bionic (18.04), Debian Jessie a Stretch
jmespath D'Bibliothéik muss op der Aarbechtsstatioun installéiert ginn, wou d'Spillbuch leeft. Fir ze installéieren: sudo pip install -r requirements.txt
Späichert d'Playbook-Datei (Beispill hei ënnen) an d'nexus.yml Datei
Run Nexus Installatioun ansible-playbook -i host nexus.yml
Beispill ansible-Playbook fir Nexus ouni LDAP mat Maven (Java), Docker, Python, Ruby, NPM, Bower, RPM a gitlfs Repositories z'installéieren.
Variablen mat Standardwäerter (kuckt default/main.yml):
Allgemeng Verännerlechen
nexus_version: ''
nexus_timezone: 'UTC'
Par défaut installéiert d'Roll déi lescht verfügbar Versioun vum Nexus. Dir kënnt d'Versioun fixéieren andeems Dir d'Variabel ännert nexus_version. Gesinn verfügbare Versiounen op https://www.sonatype.com/download-oss-sonatype.
Wann Dir op eng méi nei Versioun ännert, probéiert d'Roll Är Nexus Installatioun ze aktualiséieren.
Wann Dir eng méi al Versioun vum Nexus benotzt wéi déi lescht, sollt Dir suergen datt Dir keng Feature benotzt déi net an der installéierter Verëffentlechung verfügbar sinn (zum Beispill, Hosting Yum Repositories ass verfügbar fir Nexus méi wéi 3.8.0, git lfs repo fir Nexus méi wéi 3.3.0 etc.)
nexus timezone ass den Numm vun der Java Zäitzone, déi nëtzlech ka sinn a Kombinatioun mat de folgende Cron Ausdréck fir nexus_scheduled Aufgaben.
Den Hafen a Kontextwee vum Java Verbindungsprozess. nexus_default_context_path muss e Forward Slash enthalen wann se agestallt ass, zB: nexus_default_context_path: '/nexus/'.
Nexus OS Benotzer a Grupp
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
De Benotzer an d'Grupp, déi benotzt gi fir Nexus-Dateien ze besëtzen an de Service auszeféieren, gëtt vun der Roll erstallt wann een fehlt.
nexus_os_user_home_dir: '/home/nexus'
Erlaabt den Default Heemverzeechnes fir den Nexus Benotzer z'änneren
nexus_data_dir enthält all Konfiguratioun, Repositories an erofgeluede Artefakte. Benotzerdefinéiert blobstore Weeër nexus_data_dir kann personaliséiert ginn, gesinn ënnert nexus_blobstores.
nexus_tmp_dir enthält all temporär Dateien. De Standardwee fir Redhat gouf geplënnert /tmp fir potenziell Problemer mat automateschen Botzenprozeduren ze iwwerwannen. Kuckt #168.
Als zweet Warnung, hei ass en Auszuch aus dem uewe genannten Dokument:
Et ass net recommandéiert d'JVM Heap Erënnerung iwwer déi recommandéiert Wäerter ze erhéijen an engem Versuch d'Performance ze verbesseren. Dëst kann eigentlech de Géigendeel Effekt hunn, doraus zu onnéideg Aarbecht fir de Betribssystem.
Administrator Passwuert
nexus_admin_password: 'changeme'
De "Admin" Kont Passwuert fir d'Konfiguratioun. Dëst funktionnéiert nëmmen op der éischter Standardinstallatioun. Kuckt w.e.g. [Admin Passwuert änneren no der éischter Installatioun] (# change-admin-password-after-first-install) wann Dir et spéider mat enger Roll wëllt änneren.
Et ass staark recommandéiert Äert Passwuert net am Kloertext am Spillbuch ze späicheren, mee [ansible-Vault Verschlësselung] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (entweder inline oder an enger separater Datei gelueden mat z.B. include_vars)
Anonym Zougang par défaut
nexus_anonymous_access: false
Anonymen Zougang ass par défaut deaktivéiert. Liest méi iwwer anonym Zougang.
Dës Variablen kontrolléieren wéi d'Roll mat der Nexus API fir d'Bestëmmung verbënnt. Nëmmen fir fortgeschratt Benotzer. Dir wëllt dës Standardastellungen wahrscheinlech net änneren
Installéieren SSL Reverse Proxy.
Fir dëst ze maachen, musst Dir httpd installéieren. Notiz: wann fir httpd_setup_enable setzen Wäerttrue, Nexus Kontakter 127.0.0.1:8081, also Net ass direkt zougänglech iwwer HTTP-Port 8081 vun der externer IP Adress.
De Standard Hostnumm benotzt ass nexus_public_hostname. Wann Dir verschidden Nimm aus irgendege Grënn braucht, kënnt Dir astellen httpd_server_name mat enger anerer Bedeitung.
С httpd_copy_ssl_files: true (par défaut) sollen déi uewe genannte Certificaten an Ärem Playbook Verzeichnis existéieren a ginn op de Server kopéiert an an Apache konfiguréiert.
Wann Dir existent Certificaten um Server benotze wëllt, installéieren httpd_copy_ssl_files: false a gitt déi folgend Variabelen:
# These specifies to the vhost where to find on the remote server file
# system the certificate files.
httpd_ssl_cert_file_location: "/etc/pki/tls/certs/wildcard.vm.crt"
httpd_ssl_cert_key_location: "/etc/pki/tls/private/wildcard.vm.key"
# httpd_ssl_cert_chain_file_location: "{{ httpd_ssl_cert_file_location }}"
httpd_ssl_cert_chain_file_location ass fakultativ a sollt net agesat ginn wann Dir d'Kettedatei net wëllt personaliséieren
nexus_privileges:
- name: all-repos-read # used as key to update a privilege
# type: <one of application, repository-admin, repository-content-selector, repository-view, script or wildcard>
description: 'Read & Browse access to all repos'
repository: '*'
actions: # can be add, browse, create, delete, edit, read or * (all)
- read
- browse
# pattern: pattern
# domain: domain
# script_name: name
Lëscht Privilegien fir Astellungen. Kuckt d'Dokumentatioun an d'GUI fir z'iwwerpréiwen wéi eng Variabelen ofhängeg vum Privilegart agestallt musse ginn.
Dës Elementer si mat de folgende Standardwäerter kombinéiert:
nexus_roles:
- id: Developpers # can map to a LDAP group id, also used as a key to update a role
name: developers
description: All developers
privileges:
- nx-search-read
- all-repos-read
roles: [] # references to other role names
nexus_local_users: []
# - username: jenkins # used as key to update
# state: present # default value if ommited, use 'absent' to remove user
# first_name: Jenkins
# last_name: CI
# email: [email protected]
# password: "s3cr3t"
# roles:
# - developers # role ID
Lokal (net-LDAP) Benotzer / Konten Lëscht fir am Nexus ze kreéieren.
Lëscht vun lokalen (net-LDAP) Benotzer/Konten fir am Nexus ze kreéieren.
Ldap Kaart vun Benotzer / Rollen. Staat absent wäert Rollen aus engem bestehend Benotzer ewechhuelen wann et schonn existéiert.
Ldap Benotzer ginn net geläscht. Probéiert eng Roll fir en net existente Benotzer ze setzen wäert zu engem Feeler féieren.
Inhalt selectors
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Fir méi Informatiounen iwwer den Inhaltselektor, kuckt Dokumentatioun.
Fir den Inhaltselektor ze benotzen, füügt en neie Privileg mat type: repository-content-selector an relevantcontentSelector
Läschen d'Repositories vun der Nexus installéieren initial Standardkonfiguratioun. Dëse Schrëtt gëtt nëmme bei der éischter Installatioun ausgefouert (wann nexus_data_dir eidel festgestallt gouf).
Ewechzehuelen Repositories aus der Standard Default Configuratioun fir Nexus. Dëse Schrëtt gëtt nëmme während der éischter Installatioun duerchgefouert (wann nexus_data_dir eidel).
nexus_delete_default_blobstore: false
Läschen der Default blobstore vun der Nexus installéieren initial Default Configuratioun. Dëst kann nëmme gemaach ginn wann nexus_delete_default_repos: true an all konfiguréiert Repositories (kuckt hei ënnen) hunn eng explizit blob_store: custom. Dëse Schrëtt gëtt nëmme bei der éischter Installatioun ausgefouert (wann nexus_data_dir eidel festgestallt gouf).
Ewechhuele vu Bloblagerung (binär Artefakte) ass Standard aus der initialer Konfiguratioun ausgeschalt. Fir Bloblagerung (binär Artefakte) ze läschen, auszeschalten nexus_delete_default_repos: true. Dëse Schrëtt gëtt nëmme während der éischter Installatioun duerchgefouert (wann nexus_data_dir eidel).
Blobstores kréeieren. E Blobstore Wee an e Repository Blobstore kënnen net no der initialer Erstellung aktualiséiert ginn (all Update hei gëtt bei der Re-Provisionéierung ignoréiert).
Blobstore op S3 konfiguréieren gëtt als Komfort geliwwert an ass net Deel vun den automatiséierten Tester déi mir op travis lafen. Notéiert w.e.g. datt d'Späichere op S3 nëmme recommandéiert ass fir Fäll déi op AWS ofgesat ginn.
Schafung Blobstores. De Späicherwee an de Späicherrepository kënnen net no der éischter Erstellung aktualiséiert ginn (all Update hei gëtt ignoréiert wann se erëm installéiert ginn).
D'Bloblagerung op S3 opzestellen gëtt als Komfort zur Verfügung gestallt. Notéiert w.e.g. datt S3-Speicherung nëmme recommandéiert ass fir Fäll op AWS ofgesat.
Uewen ass e Beispill Konfiguratioun Proxy Server Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven gehost Repositories Configuratioun. Negativ Cache-Configuratioun ass fakultativ a gëtt Standard op déi uewe genannte Wäerter wa se ewechgelooss ginn.
Configuratioun gehost Repositories Maven. Déi negativ Cache Konfiguratioun (-1) ass fakultativ a gëtt Standard op déi uewe genannte Wäerter wann net spezifizéiert.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
All dräi Repositorytypen gi mat de folgende Standardwäerter kombinéiert:
_nexus_repos_maven_defaults:
blob_store: default # Note : cannot be updated once the repo has been created
strict_content_validation: true
version_policy: release # release, snapshot or mixed
layout_policy: strict # strict or permissive
write_policy: allow_once # one of "allow", "allow_once" or "deny"
maximum_component_age: -1 # Nexus gui default. For proxies only
maximum_metadata_age: 1440 # Nexus gui default. For proxies only
negative_cache_enabled: true # Nexus gui default. For proxies only
negative_cache_ttl: 1440 # Nexus gui default. For proxies only
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS an yum Repository Typen:
gesinn defaults/main.yml fir dës Optiounen:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS an yum Repositories sinn par défaut deaktivéiert:
Kuckt defaults/main.yml fir dës Optiounen:
Notéiert w.e.g. datt Dir vläicht gewësse Sécherheetsberäicher aktivéiere musst wann Dir aner Aarte vu Repositories wéi Maven benotze wëllt. Dëst ass par défaut falsch
De Backup gëtt net konfiguréiert bis Dir wiesselt nexus_backup_configure в true.
An dësem Fall gëtt déi geplangte Skripttask konfiguréiert fir op Nexus ze lafen
am Intervall uginn an nexus_backup_cron (Standard 21:00 all Dag).
Gesinn [groovy Schabloun fir dës Aufgab] (Templates/backup.groovy.j2) fir Detailer.
Dës geplangten Aufgab ass onofhängeg vun aneren nexus_scheduled_tasksdéi Dir
an Ärem Spillbuch annoncéieren.
Wann Dir wëllt Backups rotéieren / läschen, installéieren nexus_backup_rotate: true a konfiguréieren d'Zuel vun de Backups déi Dir wëllt späichere benotzen nexus_backup_keep_rotations (Standard 4).
Wann Dir Rotatioun benotzt, wann Dir zousätzlech Disk Space wärend dem Backupprozess späichere wëllt,
Dir kënnt installéieren nexus_backup_rotate_first: true. Dëst wäert Pre-Rotatioun / Läschen virum Backup konfiguréieren. Par défaut geschitt Rotatioun nodeems e Backup erstallt gëtt. Maacht weg datt an dësem Fall déi al Backups
gëtt geläscht ier den aktuelle Backup gemaach gëtt.
Erhuelung Prozedur
Run Spillbuch mat Parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(zum Beispill 2017-12-17-21-00-00 fir den 17. Dezember 2017 um 21:00 Auer
Ewechzehuelen Nexus
Opgepasst: Dëst wäert Är aktuell Donnéeën komplett läschen. Gitt sécher e Backup ze maachen, wann néideg
Benotzt eng Variabel nexus_purgewann Dir musst vun Null nei starten an d'Nexus Instanz nei installéieren mat all Daten ewechgeholl.
Änneren Administrator Passwuert no der éischter Installatioun
nexus_default_admin_password: 'admin123'
Dëst sollt net an Ärem Spillbuch geännert ginn. Dës Variabel ass mat dem Standard Nexus Admin Passwuert populéiert wann se fir d'éischt installéiert sinn a garantéiert datt mir d'Admin Passwuert änneren kënnen nexus_admin_password.
Wann Dir de Administrator Passwuert no der éischter Installatioun wëllt änneren, kënnt Dir et temporär op dat alt Passwuert vun der Kommandozeil änneren. No Ännerung nexus_admin_password an Ärem Spillbuch kënnt Dir lafen: