ProHoster > Blog > administratë > Instalimi dhe konfigurimi i Nexus Sonatype duke përdorur infrastrukturën si qasje kodi
Instalimi dhe konfigurimi i Nexus Sonatype duke përdorur infrastrukturën si qasje kodi
Sonatype Nexus është një platformë e integruar përmes së cilës zhvilluesit mund të proxy, ruajnë dhe menaxhojnë varësitë Java (Maven), Docker, Python, Ruby, NPM, imazhet Bower, paketat RPM, gitlfs, Apt, Go, Nuget dhe të shpërndajnë sigurinë e softuerit të tyre.
Pse keni nevojë për Sonatype Nexus?
Për ruajtjen e objekteve private;
Për ruajtjen në memorie të objekteve që shkarkohen nga Interneti;
Artifakte të mbështetura në paketën bazë Sonatype Nexus:
Variablat me vlera të paracaktuara (shih default/main.yml):
Variablat e pergjithshem
nexus_version: ''
nexus_timezone: 'UTC'
Si parazgjedhje, roli do të instalojë versionin më të fundit të disponueshëm të Nexus. Mund ta rregulloni versionin duke ndryshuar variablin nexus_version. Shihni versionet e disponueshme në https://www.sonatype.com/download-oss-sonatype.
Nëse ndryshoni në një version më të ri, roli do të përpiqet të përditësojë instalimin tuaj të Nexus.
Nëse jeni duke përdorur një version më të vjetër të Nexus se ai i fundit, duhet të siguroheni që nuk po përdorni veçori që nuk janë të disponueshme në versionin e instaluar (për shembull, pritja e depove yum ofrohet për nexus më të madh se 3.8.0, git lfs repo për lidhje më të madhe se 3.3.0 etj.)
nexus timezone është emri i zonës kohore Java, e cila mund të jetë e dobishme në kombinim me shprehjet e mëposhtme cron për detyrat e planifikuara nexus.
Porta dhe shtegu i kontekstit të procesit të lidhjes Java. nexus_default_context_path duhet të përmbajë një prerje përpara kur vendoset, p.sh. nexus_default_context_path: '/nexus/'.
Përdoruesi dhe grupi i Nexus OS
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Përdoruesi dhe grupi i përdorur për të zotëruar skedarë Nexus dhe për të drejtuar shërbimin do të krijohen nga roli nëse mungon një.
nexus_os_user_home_dir: '/home/nexus'
Lejo ndryshimin e direktorisë së paracaktuar të shtëpisë për përdoruesin e nexus
nexus_installation_dir përmban skedarë të ekzekutueshëm të instaluar
nexus_data_dir përmban të gjitha konfigurimet, depot dhe objektet e shkarkuara. Shtigjet e personalizuara të blobstore nexus_data_dir mund të personalizohet, shihni më poshtë nexus_blobstores.
nexus_tmp_dir përmban të gjithë skedarët e përkohshëm. Rruga e paracaktuar për redhat është zhvendosur nga /tmp për të kapërcyer problemet e mundshme me procedurat e pastrimit automatik. Shihni #168.
Si një paralajmërim i dytë, këtu është një fragment nga dokumenti i mësipërm:
Nuk rekomandohet të rritet memoria e grumbullit JVM përtej vlerave të rekomanduara në përpjekje për të përmirësuar performancën. Kjo në fakt mund të ketë efektin e kundërt, duke rezultuar në punë të panevojshme për sistemin operativ.
Fjalëkalimi i administratorit
nexus_admin_password: 'changeme'
Fjalëkalimi i llogarisë "admin" për konfigurim. Kjo funksionon vetëm në instalimin e parë të paracaktuar. Ju lutemi shikoni [Ndrysho fjalëkalimin e administratorit pas instalimit të parë] (# change-admin-password-after-first-install) nëse dëshiron ta ndryshosh më vonë duke përdorur një rol.
Rekomandohet fuqimisht të mos e ruani fjalëkalimin tuaj në tekst të qartë në librin e lojërave, por të përdorni [enkriptimin ansible-vault] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (ose inline ose në një skedar të veçantë të ngarkuar me p.sh. include_vars)
Qasje anonime si parazgjedhje
nexus_anonymous_access: false
Qasja anonime është e çaktivizuar si parazgjedhje. Lexoni më shumë rreth qasje anonime.
Këto variabla kontrollojnë se si roli lidhet me API-në e Nexus për t'u siguruar. Vetëm për përdoruesit e avancuar. Ju ndoshta nuk dëshironi t'i ndryshoni këto cilësime të paracaktuara
instaloj SSL Reverse Proxy.
Për ta bërë këtë ju duhet të instaloni httpd. Shënim: kur për httpd_setup_enable vlera e vendosurtrue, kontaktet nexus 127.0.0.1:8081, pra jo duke qenë direkt i aksesueshëm nëpërmjet portit HTTP 8081 nga adresa IP e jashtme.
Emri i parazgjedhur i hostit të përdorur është nexus_public_hostname. Nëse keni nevojë për emra të ndryshëm për ndonjë arsye, mund të vendosni httpd_server_name me një kuptim tjetër.
С httpd_copy_ssl_files: true (si parazgjedhje) certifikatat e mësipërme duhet të ekzistojnë në direktorinë tuaj të librit të luajtjes dhe do të kopjohen në server dhe do të konfigurohen në apache.
Nëse dëshironi të përdorni certifikatat ekzistuese në server, instaloni httpd_copy_ssl_files: false dhe jepni variablat e mëposhtëm:
# 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 është opsionale dhe duhet të lihet i pacaktuar nëse nuk dëshironi të personalizoni skedarin zinxhir
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
Listë privilegje për cilësimet. Shikoni dokumentacionin dhe GUI për të kontrolluar se cilat variabla duhet të vendosen në varësi të llojit të privilegjit.
Këta elementë kombinohen me vlerat e mëposhtme të paracaktuara:
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
Lista e përdoruesve/llogarive lokale (jo-LDAP) për t'u krijuar në nexus.
Lista e përdoruesve/llogarive lokale (jo-LDAP) për t'u krijuar në Nexus.
Harta LDap e përdoruesve/roleve. Shtetit absent do të heqë rolet nga një përdorues ekzistues nëse një tashmë ekziston.
Përdoruesit e LDap nuk fshihen. Përpjekja për të vendosur një rol për një përdorues që nuk ekziston do të rezultojë në një gabim.
Përzgjedhës të përmbajtjes
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Për më shumë informacion rreth përzgjedhësit të përmbajtjes, shihni Dokumentacioni.
Për të përdorur përzgjedhësin e përmbajtjes, shtoni një privilegj të ri me type: repository-content-selector dhe relevantecontentSelector
Fshini depot nga konfigurimi fillestar i paracaktuar i instalimit të nexus. Ky hap ekzekutohet vetëm në instalimin për herë të parë (kur nexus_data_dir është zbuluar bosh).
Heqja e depove nga konfigurimi i parazgjedhur i parazgjedhur për Nexus. Ky hap kryhet vetëm gjatë instalimit të parë (kur nexus_data_dir bosh).
nexus_delete_default_blobstore: false
Fshi blobstore-in e paracaktuar nga konfigurimi fillestar i paracaktuar i instalimit të nexus. Kjo mund të bëhet vetëm nëse nexus_delete_default_repos: true dhe të gjitha depot e konfiguruara (shih më poshtë) kanë një të qartë blob_store: custom. Ky hap ekzekutohet vetëm në instalimin për herë të parë (kur nexus_data_dir është zbuluar bosh).
Heqja e ruajtjes së blobit (artefakte binare) është çaktivizuar si parazgjedhje nga konfigurimi fillestar. Për të hequr ruajtjen e blobit (artefakte binare), çaktivizoni nexus_delete_default_repos: true. Ky hap kryhet vetëm gjatë instalimit të parë (kur nexus_data_dir bosh).
Blobstore te krijosh. Një shteg blobstore dhe një depo blobstore nuk mund të përditësohen pas krijimit fillestar (çdo përditësim këtu do të shpërfillet gjatë ri-sigurimit).
Konfigurimi i blobstore në S3 ofrohet si një lehtësi dhe nuk është pjesë e testeve të automatizuara që ne kryejmë në Travis. Ju lutemi vini re se ruajtja në S3 rekomandohet vetëm për rastet e vendosura në AWS.
Krijim Blobstore. Rruga e ruajtjes dhe depoja e ruajtjes nuk mund të përditësohen pas krijimit fillestar (çdo përditësim këtu do të shpërfillet kur të instalohet përsëri).
Vendosja e ruajtjes së blob në S3 ofrohet si një lehtësi. Ju lutemi vini re se ruajtja S3 rekomandohet vetëm për rastet e vendosura në AWS.
Më sipër është një shembull i konfigurimit 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 depo të pritura konfigurimi. Konfigurimi negativ i cache-it është opsional dhe do të jetë i paracaktuar në vlerat e mësipërme nëse hiqet.
konfiguracion depo të pritura Maven. Konfigurimi negativ i cache-it (-1) është opsional dhe do të jetë i paracaktuar në vlerat e mësipërme nëse nuk specifikohet.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Të tre llojet e depove kombinohen me vlerat e mëposhtme të paracaktuara:
_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 dhe llojet e depove yum:
Shiko defaults/main.yml për këto opsione:
Depot e Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS dhe yum janë çaktivizuar si parazgjedhje:
Shoh defaults/main.yml për këto opsione:
Ju lutemi vini re se mund t'ju duhet të aktivizoni disa fusha sigurie nëse dëshironi të përdorni lloje të tjera deposh përveç maven. Kjo është e rreme si parazgjedhje
Rezervimi nuk do të konfigurohet derisa të kaloni nexus_backup_configure в true.
Në këtë rast, detyra e planifikuar e skriptit do të konfigurohet për të ekzekutuar në Nexus
në intervalin e përcaktuar në nexus_backup_cron (parazgjedhja 21:00 çdo ditë).
Shikoni [shabllon groovy për këtë detyrë](shabllone/backup.groovy.j2) për detaje.
Kjo detyrë e planifikuar është e pavarur nga të tjerat nexus_scheduled_tasksqë ju
shpallni në librin tuaj të lojërave.
Nëse dëshironi të rrotulloni/fshini kopjet rezervë, instaloni nexus_backup_rotate: true dhe konfiguroni numrin e kopjeve rezervë që dëshironi të ruani duke përdorur nexus_backup_keep_rotations (parazgjedhja 4).
Kur përdorni rotacionin, nëse dëshironi të kurseni hapësirë shtesë në disk gjatë procesit të kopjimit,
Ju mund të instaloni nexus_backup_rotate_first: true. Kjo do të konfigurojë rrotullimin/fshirjen paraprake përpara kopjimit. Si parazgjedhje, rrotullimi ndodh pasi të krijohet një kopje rezervë. Ju lutemi vini re se në këtë rast rezervat e vjetra
do të fshihet përpara se të bëhet rezervimi aktual.
Procedura e rikuperimit
Ekzekutoni librin e lojërave me parametër -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(për shembull, 2017-12-17-21-00-00 për 17 dhjetor 2017 në orën 21:00
Heqja e lidhjes
Paralajmërim: Kjo do të fshijë plotësisht të dhënat tuaja aktuale. Sigurohuni që të bëni një kopje rezervë më herët nëse është e nevojshme
Përdorni një ndryshore nexus_purgenëse duhet të rinisni nga e para dhe të riinstaloni shembullin nexus me të gjitha të dhënat e hequra.
Ndryshoni fjalëkalimin e administratorit pas instalimit të parë
nexus_default_admin_password: 'admin123'
Kjo nuk duhet të ndryshohet në librin tuaj të lojërave. Kjo variabël është e mbushur me fjalëkalimin e parazgjedhur të administratorit të Nexus kur instalohet për herë të parë dhe siguron që ne mund ta ndryshojmë fjalëkalimin e administratorit në nexus_admin_password.
Nëse dëshironi të ndryshoni fjalëkalimin e administratorit pas instalimit të parë, mund ta ndryshoni përkohësisht në fjalëkalimin e vjetër nga rreshti i komandës. Pas ndryshimit nexus_admin_password në librin tuaj të lojërave mund të ekzekutoni: