ProHoster > Blogs > AdministrÄcija > Nexus Sonatype instalÄÅ”ana un konfigurÄÅ”ana, izmantojot infrastruktÅ«ru kÄ koda pieeju
Nexus Sonatype instalÄÅ”ana un konfigurÄÅ”ana, izmantojot infrastruktÅ«ru kÄ koda pieeju
Sonatype Nexus ir integrÄta platforma, ar kuras palÄ«dzÄ«bu izstrÄdÄtÄji var izmantot starpniekserveri, uzglabÄt un pÄrvaldÄ«t Java (Maven) atkarÄ«bas, Docker, Python, Ruby, NPM, Bower attÄlus, RPM pakotnes, gitlfs, Apt, Go, Nuget un izplatÄ«t savu programmatÅ«ras droŔību.
KÄpÄc jums ir nepiecieÅ”ams Sonatype Nexus?
PrivÄtu artefaktu glabÄÅ”anai;
No interneta lejupielÄdÄtu artefaktu saglabÄÅ”anai keÅ”atmiÅÄ;
Artefakti, kas tiek atbalstÄ«ti pamata Sonatype Nexus pakotnÄ:
MainÄ«gie ar noklusÄjuma vÄrtÄ«bÄm (sk default/main.yml):
VispÄrÄ«gi mainÄ«gie
nexus_version: ''
nexus_timezone: 'UTC'
PÄc noklusÄjuma loma instalÄs jaunÄko pieejamo Nexus versiju. Varat labot versiju, mainot mainÄ«go nexus_version. PieejamÄs versijas skatiet vietnÄ https://www.sonatype.com/download-oss-sonatype.
Ja mainÄ«sit uz jaunÄku versiju, loma mÄÄ£inÄs atjauninÄt jÅ«su Nexus instalÄciju.
Ja izmantojat vecÄku Nexus versiju par jaunÄko, pÄrliecinieties, ka neizmantojat funkcijas, kas nav pieejamas instalÄtajÄ laidienÄ (piemÄram, yum repozitoriju mitinÄÅ”ana ir pieejama nexus versijai, kas ir lielÄka par 3.8.0, git lfs repo nexus, kas ir lielÄks par 3.3.0 utt.)
nexus timezone ir Java laika joslas nosaukums, kas var bÅ«t noderÄ«gs kopÄ ar tÄlÄk norÄdÄ«tajÄm cron izteiksmÄm nexus_scheduled uzdevumiem.
Java savienojuma procesa ports un konteksta ceļŔ. nexus_default_context_path ir jÄietver slÄ«psvÄ«tra, kad tÄ ir iestatÄ«ta, piemÄram: nexus_default_context_path: '/nexus/'.
Nexus OS lietotÄjs un grupa
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
LietotÄjs un grupa, kas izmantoja Nexus failu Ä«paÅ”umtiesÄ«bas un pakalpojuma palaiÅ”anu, tiks izveidota pÄc lomas, ja tÄdas trÅ«kst.
nexus_installation_dir satur instalÄtos izpildÄmos failus
nexus_data_dir satur visas konfigurÄcijas, krÄtuves un lejupielÄdÄtos artefaktus. PielÄgoti blobstore ceļi nexus_data_dir var pielÄgot, skatiet tÄlÄk nexus_blobstores.
nexus_tmp_dir satur visus pagaidu failus. Redhat noklusÄjuma ceļŔ ir pÄrvietots no /tmp lai pÄrvarÄtu iespÄjamÄs problÄmas ar automÄtiskajÄm tÄ«rÄ«Å”anas procedÅ«rÄm. Skatiet #168.
KÄ otru brÄ«dinÄjumu Å”eit ir izvilkums no iepriekÅ” minÄtÄ dokumenta:
Lai uzlabotu veiktspÄju, nav ieteicams palielinÄt JVM kaudzes atmiÅu, pÄrsniedzot ieteiktÄs vÄrtÄ«bas. Tam faktiski var bÅ«t pretÄjs efekts, radot operÄtÄjsistÄmai nevajadzÄ«gu darbu.
Administratora parole
nexus_admin_password: 'changeme'
āAdministratoraā konta parole iestatÄ«Å”anai. Tas darbojas tikai pirmajÄ noklusÄjuma instalÄcijÄ. LÅ«dzu, skatiet sadaļu [Administratora paroles maiÅa pÄc pirmÄs instalÄÅ”anas] (# change-admin-password-after-first-install), ja vÄlaties to mainÄ«t vÄlÄk, izmantojot lomu.
Ir ļoti ieteicams rokasgrÄmatÄ neglabÄt paroli skaidrÄ tekstÄ, bet izmantot [ansible-vault Å”ifrÄÅ”anu] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (iekļauts vai atseviÅ”Ä·Ä failÄ, kas ielÄdÄts ar, piemÄram, include_vars)
AnonÄ«ma piekļuve pÄc noklusÄjuma
nexus_anonymous_access: false
PÄc noklusÄjuma anonÄ«ma piekļuve ir atspÄjota. Lasiet vairÄk par anonÄ«ma piekļuve.
Å ie mainÄ«gie nosaka, kÄ loma tiek savienota ar Nexus API nodroÅ”inÄÅ”anai. Tikai pieredzÄjuÅ”iem lietotÄjiem. JÅ«s, iespÄjams, nevÄlaties mainÄ«t Å”os noklusÄjuma iestatÄ«jumus
Komplekts SSL reversais starpniekserveris.
Lai to izdarÄ«tu, jÄinstalÄ httpd. PiezÄ«me: kad paredzÄts httpd_setup_enable iestatÄ«tÄ vÄrtÄ«batrue, nexus kontakti 127.0.0.1:8081, tÄdÄjÄdi nÄ ir tieÅ”i pieejama, izmantojot HTTP portu 8081 no ÄrÄjÄs IP adreses.
Izmantotais noklusÄjuma resursdatora nosaukums ir nexus_public_hostname. Ja kÄda iemesla dÄļ jums ir nepiecieÅ”ami citi nosaukumi, varat iestatÄ«t httpd_server_name ar citu nozÄ«mi.
Š” httpd_copy_ssl_files: true (pÄc noklusÄjuma) iepriekÅ”minÄtajiem sertifikÄtiem ir jÄbÅ«t jÅ«su rokasgrÄmatas direktorijÄ, un tie tiks kopÄti serverÄ« un konfigurÄti apache.
Ja vÄlaties izmantot serverÄ« esoÅ”os sertifikÄtus, instalÄjiet httpd_copy_ssl_files: false un norÄdiet Å”Ädus mainÄ«gos:
# 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 ir neobligÄts, un tas ir jÄatstÄj neiestatÄ«ts, ja nevÄlaties pielÄgot Ä·Ädes failu
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
Saraksts privilÄÄ£ijas iestatÄ«jumiem. Apskatiet dokumentÄciju un GUI, lai pÄrbaudÄ«tu, kuri mainÄ«gie ir jÄiestata atkarÄ«bÄ no privilÄÄ£iju veida.
Å ie elementi ir apvienoti ar Å”ÄdÄm noklusÄjuma vÄrtÄ«bÄm:
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
VietÄjo (kas nav LDAP) lietotÄju/kontu saraksts, ko izveidot programmÄ Nexus.
VietÄjo (kas nav LDAP) lietotÄju/kontu saraksts, kas jÄizveido ierÄ«cÄ Nexus.
Ldap lietotÄju/lomu kartÄÅ”ana. Valsts absent noÅems esoÅ”a lietotÄja lomas, ja tÄda jau pastÄv.
Ldap lietotÄji netiek dzÄsti. MÄÄ£inot iestatÄ«t lomu neesoÅ”am lietotÄjam, radÄ«sies kļūda.
Satura atlasÄ«tÄji
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
PapildinformÄciju par satura atlasÄ«tÄju skatiet DokumentÄcija.
Lai izmantotu satura atlasÄ«tÄju, pievienojiet jaunu privilÄÄ£iju ar type: repository-content-selector un atbilstoÅ”scontentSelector
DzÄsiet repozitorijus no nexus instalÄÅ”anas sÄkotnÄjÄs noklusÄjuma konfigurÄcijas. Å Ä« darbÄ«ba tiek izpildÄ«ta tikai pirmÄs instalÄÅ”anas reizÄ (kad nexus_data_dir ir atklÄts tukÅ”s).
Notiek repozitoriju noÅemÅ”ana no Nexus noklusÄjuma noklusÄjuma konfigurÄcijas. Å Ä« darbÄ«ba tiek veikta tikai pirmÄs instalÄÅ”anas laikÄ (kad nexus_data_dir tukÅ”s).
nexus_delete_default_blobstore: false
DzÄsiet noklusÄjuma blobstore no nexus instalÄÅ”anas sÄkotnÄjÄs noklusÄjuma konfigurÄcijas. To var izdarÄ«t tikai tad, ja nexus_delete_default_repos: true un visÄm konfigurÄtajÄm krÄtuvÄm (skatiet tÄlÄk) ir skaidra blob_store: custom. Å Ä« darbÄ«ba tiek izpildÄ«ta tikai pirmÄs instalÄÅ”anas reizÄ (kad nexus_data_dir ir atklÄts tukÅ”s).
Blob krÄtuves (binÄro artefaktu) noÅemÅ”ana pÄc noklusÄjuma ir atspÄjota no sÄkotnÄjÄs konfigurÄcijas. Lai noÅemtu blob krÄtuvi (binÄros artefaktus), izslÄdziet nexus_delete_default_repos: true. Å Ä« darbÄ«ba tiek veikta tikai pirmÄs instalÄÅ”anas laikÄ (kad nexus_data_dir tukÅ”s).
Blobstores radÄ«t. Blobstore ceļu un repozitorija blobstore nevar atjauninÄt pÄc sÄkotnÄjÄs izveides (jebkurÅ” atjauninÄjums Å”eit tiks ignorÄts, veicot atkÄrtotu nodroÅ”inÄÅ”anu).
Blobstore konfigurÄÅ”ana S3 tiek nodroÅ”inÄta ÄrtÄ«bai, un tÄ nav daļa no automÄtiskajiem testiem, ko veicam travis. LÅ«dzu, Åemiet vÄrÄ, ka glabÄÅ”ana S3 ir ieteicama tikai gadÄ«jumiem, kas izvietoti AWS.
RadÄ«Å”ana Blobstores. KrÄtuves ceļu un krÄtuves repozitoriju nevar atjauninÄt pÄc sÄkotnÄjÄs izveides (jebkurÅ” atjauninÄjums Å”eit tiks ignorÄts, atkÄrtoti instalÄjot).
Blob krÄtuves iestatÄ«Å”ana S3 ir paredzÄta ÄrtÄ«bai. LÅ«dzu, Åemiet vÄrÄ, ka S3 krÄtuve ir ieteicama tikai gadÄ«jumiem, kas izvietoti AWS.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven mitinÄtÄs krÄtuves konfigurÄcija. NegatÄ«vÄ keÅ”atmiÅas konfigurÄcija nav obligÄta, un pÄc noklusÄjuma tiks izmantotas iepriekÅ” minÄtÄs vÄrtÄ«bas, ja tÄs tiek izlaistas.
KonfigurÄcija mitinÄtÄs krÄtuves Maven. NegatÄ«vÄ keÅ”atmiÅas konfigurÄcija (-1) nav obligÄta, un pÄc noklusÄjuma tiks izmantotas iepriekÅ” minÄtÄs vÄrtÄ«bas, ja tÄs nav norÄdÄ«tas.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Visi trÄ«s repozitoriju veidi ir apvienoti ar Å”ÄdÄm noklusÄjuma vÄrtÄ«bÄm:
_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
LÅ«dzu, Åemiet vÄrÄ, ka jums, iespÄjams, bÅ«s jÄiespÄjo noteikti droŔības tvÄrumi, ja vÄlaties izmantot cita veida repozitorijus, izÅemot maven. PÄc noklusÄjuma tas ir nepatiess
DublÄÅ”ana netiks konfigurÄta, kamÄr nepÄrslÄgsit nexus_backup_configure Š² true.
Å ÄdÄ gadÄ«jumÄ ieplÄnotais skripta uzdevums tiks konfigurÄts palaiÅ”anai ierÄ«cÄ Nexus
punktÄ norÄdÄ«tajÄ intervÄlÄ nexus_backup_cron (pÄc noklusÄjuma 21:00 katru dienu).
PlaÅ”Äku informÄciju skatiet sadaÄ¼Ä [groovy veidne Å”im uzdevumam] (templates/backup.groovy.j2).
Å is ieplÄnotais uzdevums ir neatkarÄ«gs no citiem nexus_scheduled_taskskuru jÅ«s
paziÅojiet savÄ rokasgrÄmatÄ.
Ja vÄlaties pagriezt/dzÄst dublÄjumus, instalÄjiet nexus_backup_rotate: true un konfigurÄjiet to dublÄjumu skaitu, kurus vÄlaties saglabÄt nexus_backup_keep_rotations (noklusÄjums 4).
Izmantojot rotÄciju, ja vÄlaties ietaupÄ«t papildu vietu diskÄ dublÄÅ”anas procesa laikÄ,
JÅ«s varat instalÄt nexus_backup_rotate_first: true. Tas konfigurÄs iepriekÅ”Äju pagrieÅ”anu/dzÄÅ”anu pirms dublÄÅ”anas. PÄc noklusÄjuma rotÄcija notiek pÄc dublÄjuma izveides. LÅ«dzu, Åemiet vÄrÄ, ka Å”ajÄ gadÄ«jumÄ vecÄs dublÄjumkopijas
tiks dzÄsts pirms paÅ”reizÄjÄs dublÄÅ”anas izveides.
AtveseļoÅ”anÄs procedÅ«ra
Palaist rokasgrÄmatu ar parametru -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(piemÄram, 2017-12-17-21-00-00 par 17. gada 2017. decembri plkst. 21:00
Notiek savienojuma noÅemÅ”ana
BrÄ«dinÄjums. TÄdÄjÄdi tiks pilnÄ«bÄ dzÄsti jÅ«su paÅ”reizÄjie dati. Ja nepiecieÅ”ams, noteikti izveidojiet dublÄjumu agrÄk
Izmantojiet mainÄ«go nexus_purgeja jums ir jÄrestartÄ no nulles un atkÄrtoti jÄinstalÄ nexus instance ar noÅemtiem visiem datiem.
To nevajadzÄtu mainÄ«t jÅ«su rokasgrÄmatÄ. Å is mainÄ«gais tiek aizpildÄ«ts ar noklusÄjuma Nexus administratora paroli pÄc pirmÄs instalÄÅ”anas, un tas nodroÅ”ina, ka mÄs varam mainÄ«t administratora paroli uz nexus_admin_password.
Ja vÄlaties mainÄ«t administratora paroli pÄc pirmÄs instalÄÅ”anas, varat Ä«slaicÄ«gi nomainÄ«t to uz veco paroli no komandrindas. PÄc pÄrmaiÅÄm nexus_admin_password savÄ rokasgrÄmatÄ varat palaist: