ProHoster > Blog > uprava > Instalacija i konfiguracija Nexus Sonatype korištenjem pristupa infrastrukture kao koda
Instalacija i konfiguracija Nexus Sonatype korištenjem pristupa infrastrukture kao koda
Sonatype Nexus je integrirana platforma preko koje programeri mogu proxy, pohraniti i upravljati Java (Maven) ovisnostima, Docker, Python, Ruby, NPM, Bower slike, RPM paketi, gitlfs, Apt, Go, Nuget i distribuirati svoju softversku sigurnost.
Zašto vam je potreban Sonatype Nexus?
Za pohranu privatnih artefakata;
Za predmemoriranje artefakata koji su preuzeti s interneta;
Artefakti podržani u osnovnom Sonatype Nexus paketu:
Varijable sa zadanim vrijednostima (vidi default/main.yml):
Opće varijable
nexus_version: ''
nexus_timezone: 'UTC'
Prema zadanim postavkama, uloga će instalirati najnoviju dostupnu verziju Nexusa. Možete popraviti verziju promjenom varijable nexus_version. Dostupne verzije pogledajte na https://www.sonatype.com/download-oss-sonatype.
Ako prijeđete na noviju verziju, uloga će pokušati ažurirati vašu instalaciju Nexusa.
Ako koristite stariju verziju Nexusa od najnovije, trebali biste osigurati da ne koristite značajke koje nisu dostupne u instaliranom izdanju (na primjer, hosting yum repozitorija dostupan je za nexus više od 3.8.0, git lfs repo za nexus veći od 3.3.0 itd.)
nexus timezone je naziv Java vremenske zone, što može biti korisno u kombinaciji sa sljedećim cron izrazima za nexus_scheduled zadatke.
Port i kontekstni put procesa Java veze. nexus_default_context_path mora sadržavati kosu crtu kada je postavljena, npr.: nexus_default_context_path: '/nexus/'.
Nexus OS korisnik i grupa
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Korisnik i grupa koji se koriste za posjedovanje Nexus datoteka i pokretanje usluge stvorit će se ulogom ako ona nedostaje.
nexus_os_user_home_dir: '/home/nexus'
Dopusti promjenu zadanog matičnog direktorija za korisnika nexusa
nexus_installation_dir sadrži instalirane izvršne datoteke
nexus_data_dir sadrži sve konfiguracije, repozitorije i preuzete artefakte. Prilagođene staze blobstorea nexus_data_dir može se prilagoditi, vidi dolje nexus_blobstores.
nexus_tmp_dir sadrži sve privremene datoteke. Zadana staza za redhat je premještena s /tmp za prevladavanje potencijalnih problema s automatskim postupcima čišćenja. Vidi #168.
Kao drugo upozorenje, evo izvatka iz gornjeg dokumenta:
Ne preporučuje se povećanje JVM heap memorije iznad preporučenih vrijednosti u pokušaju poboljšanja performansi. To zapravo može imati suprotan učinak, rezultirajući nepotrebnim radom za operativni sustav.
Administratorska lozinka
nexus_admin_password: 'changeme'
Lozinka računa "admin" za postavljanje. Ovo radi samo na prvoj zadanoj instalaciji. Pogledajte [Promjena administratorske lozinke nakon prve instalacije](# change-admin-password-after-first-install) ako je želite promijeniti kasnije koristeći ulogu.
Strogo se preporučuje da svoju lozinku ne pohranjujete u jasnom tekstu u priručniku, već da koristite [ansible-vault enkripciju] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (umetnuto ili u zasebnoj datoteci učitanoj s npr. include_vars)
Anonimni pristup prema zadanim postavkama
nexus_anonymous_access: false
Anonimni pristup je prema zadanim postavkama onemogućen. Pročitajte više o anonimni pristup.
Ove varijable kontroliraju kako se uloga povezuje s Nexus API-jem za dodjelu. Samo za napredne korisnike. Vjerojatno ne želite promijeniti ove zadane postavke
Postaviti SSL obrnuti proxy.
Da biste to učinili morate instalirati httpd. Napomena: kada za httpd_setup_enable postavljena vrijednosttrue, nexus kontakti 127.0.0.1:8081, dakle ne kojima se može izravno pristupiti putem HTTP porta 8081 s vanjske IP adrese.
Zadani naziv hosta koji se koristi je nexus_public_hostname. Ako iz nekog razloga trebate drugačija imena, možete postaviti httpd_server_name s drugačijim značenjem.
С httpd_copy_ssl_files: true (prema zadanim postavkama) gornji certifikati trebali bi postojati u vašem imeniku playbooka i bit će kopirani na poslužitelj i konfigurirani u apacheu.
Ako želite koristiti postojeće certifikate na poslužitelju, instalirajte httpd_copy_ssl_files: false i navedite sljedeće varijable:
# 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 nije obavezno i ne treba ga postaviti ako ne želite prilagoditi datoteku lanca
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
popis privilegije za postavke. Pogledajte dokumentaciju i GUI kako biste provjerili koje varijable je potrebno postaviti ovisno o vrsti povlastice.
Ovi se elementi kombiniraju sa sljedećim zadanim vrijednostima:
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
Lokalni (ne-LDAP) popis korisnika/računa za izradu u nexusu.
Popis lokalnih (ne-LDAP) korisnika/računa za izradu u Nexusu.
Ldap mapiranje korisnika/uloga. država absent će ukloniti uloge postojećeg korisnika ako već postoji.
Ldap korisnici se ne brišu. Pokušaj postavljanja uloge za nepostojećeg korisnika rezultirat će pogreškom.
Selektori sadržaja
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Za više informacija o biraču sadržaja pogledajte Dokumentacija.
Za korištenje birača sadržaja dodajte novu privilegiju s type: repository-content-selector i relevantancontentSelector
Izbrišite repozitorije iz početne zadane konfiguracije instalacije nexusa. Ovaj korak se izvršava samo pri prvoj instalaciji (kada nexus_data_dir otkrivena je prazna).
Uklanjanje spremišta iz zadane konfiguracije za Nexus. Ovaj se korak izvodi samo tijekom prve instalacije (kada nexus_data_dir prazan).
nexus_delete_default_blobstore: false
Izbrišite zadani blobstore iz početne zadane konfiguracije instalacije nexusa. To se može učiniti samo ako nexus_delete_default_repos: true i sva konfigurirana spremišta (vidi dolje) imaju eksplicitnu blob_store: custom. Ovaj korak se izvršava samo pri prvoj instalaciji (kada nexus_data_dir otkrivena je prazna).
Uklanjanje blob pohrane (binarni artefakti) onemogućeno je prema zadanim postavkama u početnoj konfiguraciji. Za uklanjanje blob memorije (binarni artefakti), isključite nexus_delete_default_repos: true. Ovaj se korak izvodi samo tijekom prve instalacije (kada nexus_data_dir prazan).
Trgovine mrljama stvoriti. Put blobstorea i spremište blobstorea ne mogu se ažurirati nakon početnog stvaranja (svako ažuriranje ovdje bit će zanemareno pri ponovnom postavljanju).
Konfiguriranje blobstorea na S3 pruža se kao pogodnost i nije dio automatiziranih testova koje izvodimo na travisu. Imajte na umu da se pohranjivanje na S3 preporučuje samo za instance postavljene na AWS.
Stvaranje Trgovine mrljama. Putanja za pohranjivanje i repozitorij za pohranjivanje ne mogu se ažurirati nakon početnog stvaranja (svako ažuriranje ovdje bit će zanemareno kada se ponovno instalira).
Postavljanje blob pohrane na S3 pruža se kao pogodnost. Imajte na umu da se S3 pohrana preporučuje samo za instance raspoređene na AWS-u.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven hostirana spremišta konfiguracija. Negativna konfiguracija predmemorije nije obavezna i postavit će zadane gornje vrijednosti ako su izostavljene.
Konfiguracija hostirana spremišta Maven. Negativna konfiguracija predmemorije (-1) nije obavezna i prema zadanim postavkama postavit će gornje vrijednosti ako nije navedena.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Sve tri vrste repozitorija kombinirane su sa sljedećim zadanim vrijednostima:
_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
Vrste spremišta Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS i yum:
vidjeti defaults/main.yml za ove opcije:
Spremišta Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS i yum onemogućena su prema zadanim postavkama:
Vidjeti defaults/main.yml za ove opcije:
Imajte na umu da ćete možda morati omogućiti određene sigurnosne opsege ako želite koristiti druge vrste repozitorija osim maven-a. Ovo je prema zadanim postavkama netočno
Sigurnosno kopiranje neće biti konfigurirano dok se ne prebacite nexus_backup_configure в true.
U ovom slučaju, zakazani zadatak skripte bit će konfiguriran za izvođenje na Nexusu
u intervalu navedenom u nexus_backup_cron (zadano 21:00 svaki dan).
Pogledajte [groovy predložak za ovaj zadatak](templates/backup.groovy.j2) za detalje.
Ovaj planirani zadatak je neovisan o ostalima nexus_scheduled_taskskoji ti
najavite u svojoj knjižici.
Ako želite rotirati/brisati sigurnosne kopije, instalirajte nexus_backup_rotate: true i konfigurirajte broj sigurnosnih kopija pomoću kojih želite spremiti nexus_backup_keep_rotations (zadano 4).
Kada koristite rotaciju, ako želite uštedjeti dodatni prostor na disku tijekom procesa izrade sigurnosne kopije,
Možete instalirati nexus_backup_rotate_first: true. Ovo će konfigurirati prethodnu rotaciju/brisanje prije sigurnosne kopije. Prema zadanim postavkama, rotacija se događa nakon stvaranja sigurnosne kopije. Imajte na umu da u ovom slučaju stare sigurnosne kopije
će se izbrisati prije izrade trenutne sigurnosne kopije.
Procedura obnavljanja
Pokrenite playbook s parametrom -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(na primjer, 2017-12-17-21-00-00 za 17. prosinca 2017. u 21:00
Uklanjanje nexusa
Upozorenje: ovo će u potpunosti izbrisati vaše trenutne podatke. Svakako napravite sigurnosnu kopiju ranije ako je potrebno
Koristite varijablu nexus_purgeako trebate ponovno pokrenuti ispočetka i ponovno instalirati nexus instancu sa svim uklonjenim podacima.
Promijenite administratorsku lozinku nakon prve instalacije
nexus_default_admin_password: 'admin123'
Ovo se ne bi trebalo mijenjati u vašem priručniku. Ova se varijabla popunjava zadanom administratorskom lozinkom Nexusa prilikom prve instalacije i osigurava da možemo promijeniti administratorsku lozinku u nexus_admin_password.
Ako želite promijeniti administratorsku lozinku nakon prve instalacije, možete je privremeno promijeniti u staru lozinku iz naredbenog retka. Nakon promjene nexus_admin_password u svom playbooku možete pokrenuti: