ProHoster > Blog > Bestjoer > Ynstallearje en konfigurearje Nexus Sonatype mei help fan de ynfrastruktuer as koade oanpak
Ynstallearje en konfigurearje Nexus Sonatype mei help fan de ynfrastruktuer as koade oanpak
Sonatype Nexus is in yntegreare platfoarm wêrmei't ûntwikkelders Java (Maven) ôfhinklikens, Docker, Python, Ruby, NPM, Bower-ôfbyldings, RPM-pakketten, gitlfs, Apt, Go, Nuget kinne proxy, opslaan en beheare en har softwarefeiligens ferspriede.
Wêrom hawwe jo Sonatype Nexus nedich?
Foar it bewarjen fan privee artefakten;
Foar caching artefakten dy't wurde ynladen fan it ynternet;
Artefakten stipe yn it basispakket Sonatype Nexus:
Fariabelen mei standertwearden (sjoch default/main.yml):
Algemiene fariabelen
nexus_version: ''
nexus_timezone: 'UTC'
Standert sil de rol de lêste beskikbere ferzje fan Nexus ynstallearje. Jo kinne de ferzje reparearje troch de fariabele te feroarjen nexus_version. Sjoch beskikbere ferzjes op https://www.sonatype.com/download-oss-sonatype.
As jo feroarje nei in nijere ferzje, sil de rol besykje jo Nexus-ynstallaasje te aktualisearjen.
As jo in âldere ferzje fan Nexus brûke dan de lêste, moatte jo derfoar soargje dat jo gjin funksjes brûke dy't net beskikber binne yn 'e ynstallearre release (bygelyks, hosting fan yum-repositories is beskikber foar nexus grutter dan 3.8.0, git lfs repo foar nexus grutter dan 3.3.0 ensfh.)
nexus timezone is de namme fan 'e Java-tiidsône, dy't nuttich kin wêze yn kombinaasje mei de folgjende cron-útdrukkingen foar nexus_scheduled taken.
De poarte en kontekstpaad fan it Java-ferbiningsproses. nexus_default_context_path moat in slash befetsje as it ynsteld is, bygelyks: nexus_default_context_path: '/nexus/'.
Nexus OS brûker en groep
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
De brûker en groep dy't brûkt wurde om Nexus-bestannen te besit en de tsjinst út te fieren, wurde makke troch de rol as ien ûntbrekt.
nexus_os_user_home_dir: '/home/nexus'
Tastean it feroarjen fan de standert thúsmap foar de nexus-brûker
nexus_data_dir befettet alle konfiguraasje, repositories en ynladen artefakten. Oanpaste blobstore paden nexus_data_dir kin oanpast wurde, sjoch hjirûnder nexus_blobstores.
nexus_tmp_dir befettet alle tydlike triemmen. It standertpaad foar redhat is ferpleatst fan /tmp om potinsjele problemen te oerwinnen mei automatyske reinigingsprosedueres. Sjoch #168.
Dit binne de standertynstellingen foar Nexus. Graach net feroarje dizze weardenAs jo hawwe net lêzen nexus systeem easken ûnthâld seksje en net begripe wat se dogge.
As twadde warskôging, hjir is in úttreksel út it boppesteande dokumint:
It is net oan te rieden om it JVM-heapûnthâld te ferheegjen boppe de oanrikkemandearre wearden yn in besykjen om prestaasjes te ferbetterjen. Dit kin eins it tsjinoerstelde effekt hawwe, wat resulteart yn ûnnedich wurk foar it bestjoeringssysteem.
Administrator wachtwurd
nexus_admin_password: 'changeme'
It "admin" akkount wachtwurd foar opset. Dit wurket allinnich op de earste standert ynstallaasje. Sjoch asjebleaft [Admin-wachtwurd feroarje nei earste ynstallaasje] (# wizigje-admin-wachtwurd-nei-earste-ynstallaasje) as jo it letter wizigje wolle mei in rol.
It wurdt sterk oanrikkemandearre om jo wachtwurd net yn dúdlike tekst op te slaan yn it playbook, mar om [ansible-vault-fersifering] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (sawol ynline as yn in apart bestân laden mei bygelyks include_vars)
Standert anonime tagong
nexus_anonymous_access: false
Anonime tagong is standert útskeakele. Lês mear oer anonym tagong.
Dizze fariabelen kontrolearje hoe't de rol ferbûn is mei de Nexus API foar foarsjenning. Allinich foar avansearre brûkers. Jo wolle dizze standertynstellingen wierskynlik net feroarje
Ynstallearje SSL Reverse Proxy.
Om dit te dwaan moatte jo httpd ynstallearje. Opmerking: wannear foar httpd_setup_enable set weardetrue, nexus kontakten 127.0.0.1:8081, dus net direkt tagonklik fia HTTP-poarte 8081 fanút it eksterne IP-adres.
De standert brûkte hostnamme is nexus_public_hostname. As jo nedich hawwe ferskillende nammen foar guon reden, kinne jo ynstelle httpd_server_name mei in oare betsjutting.
С httpd_copy_ssl_files: true (standert) de boppesteande sertifikaten moatte bestean yn jo playbook map en wurde kopiearre nei de tsjinner en konfigurearre yn apache.
As jo besteande sertifikaten op 'e tsjinner brûke wolle, ynstallearje httpd_copy_ssl_files: false en jouwe de folgjende fariabelen:
# 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 is opsjoneel en moat net ynsteld wurde as jo de kettingbestân net oanpasse wolle
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 fan privileezjes foar ynstellings. Sjoch nei de dokumintaasje en GUI om te kontrolearjen hokker fariabelen moatte wurde ynsteld ôfhinklik fan it privileezjetype.
Dizze eleminten wurde kombinearre mei de folgjende standertwearden:
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
Lokale (net-LDAP) brûkers / akkountslist om te meitsjen yn nexus.
List fan lokale (net-LDAP) brûkers/akkounts om te meitsjen yn Nexus.
Ldap mapping fan brûkers / rollen. Steat absent sil rollen fuortsmite fan in besteande brûker as ien al bestiet.
Ldap-brûkers wurde net wiske. Besykje in rol yn te stellen foar in net-besteande brûker sil resultearje yn in flater.
Ynhâld selectors
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Sjoch foar mear ynformaasje oer de ynhâldselektor Dokumintaasje.
Om de ynhâldselektor te brûken, foegje in nij privileezje ta mei type: repository-content-selector en relevantcontentSelector
Wiskje de repositories fan 'e nexus ynstallearje initial standert konfiguraasje. Dizze stap wurdt allinich útfierd by earste ynstallaasje (wannear nexus_data_dir is leech fûn).
Repositories fuortsmite fan de standert standertkonfiguraasje foar Nexus. Dizze stap wurdt allinich útfierd tidens de earste ynstallaasje (wannear nexus_data_dir leech).
nexus_delete_default_blobstore: false
Wiskje de standert blobstore fan 'e nexus ynstallearje initial standert konfiguraasje. Dit kin dien wurde allinnich as nexus_delete_default_repos: true en alle ynstelde repositories (sjoch hjirûnder) hawwe in eksplisite blob_store: custom. Dizze stap wurdt allinich útfierd by earste ynstallaasje (wannear nexus_data_dir is leech fûn).
It fuortsmiten fan blob-opslach (binêre artefakten) is standert útskeakele fanút de earste konfiguraasje. Om blob-opslach (binêre artefakten) te ferwiderjen, útsette nexus_delete_default_repos: true. Dizze stap wurdt allinich útfierd tidens de earste ynstallaasje (wannear nexus_data_dir leech).
Blobstores meitsje. In blobstore-paad en in repository blobstore kinne net bywurke wurde nei inisjele oanmeitsjen (elke fernijing hjir sil wurde negearre by re-provisionning).
It konfigurearjen fan blobstore op S3 wurdt levere as gemak en is gjin diel fan 'e automatisearre testen dy't wy op travis útfiere. Tink derom dat opslaan op S3 allinich wurdt oanrikkemandearre foar gefallen ynset op AWS.
Kreaasje Blobstores. It opslachpaad en opslachbewarplak kinne net bywurke wurde nei de earste oanmeitsjen (elke fernijing hjir sil wurde negearre as se opnij ynstalleare).
It ynstellen fan blob-opslach op S3 wurdt foarsjoen as gemak. Tink derom dat S3-opslach allinich wurdt oanrikkemandearre foar gefallen ynset op AWS.
Boppe is in foarbyld konfiguraasje proxy tsjinner Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven hosted repositories konfiguraasje. Negative cache-konfiguraasje is opsjoneel en sil standert wurde op de boppesteande wearden as weglitten.
Konfiguraasje hosted repositories Maven. De negative cache-konfiguraasje (-1) is opsjoneel en sil standert wurde op de boppesteande wearden as net oantsjutte.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Alle trije repositorytypen wurde kombineare mei de folgjende standertwearden:
_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 en yum repository types:
sjen defaults/main.yml foar dizze opsjes:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS en yum repositories binne standert útskeakele:
Sjoch defaults/main.yml foar dizze opsjes:
Reservekopy sil net konfigurearre wurde oant jo wikselje nexus_backup_configure в true.
Yn dit gefal sil de plande skripttaak ynsteld wurde om op Nexus te rinnen
op it ynterval oantsjutte yn nexus_backup_cron (standert 21:00 eltse dei).
Sjoch [groovy sjabloan foar dizze taak] (templates/backup.groovy.j2) foar details.
Dizze plande taak is ûnôfhinklik fan oaren nexus_scheduled_tasksdy dy
oankundigje yn jo playbook.
As jo backups wolle rotearje / wiskje, ynstallearje dan nexus_backup_rotate: true en konfigurearje it oantal backups dat jo wolle bewarje mei help nexus_backup_keep_rotations (standert 4).
As jo rotaasje brûke, as jo ekstra skiifromte wolle besparje tidens it backupproses,
Jo kinne ynstallearje nexus_backup_rotate_first: true. Dit sil pre-rotaasje / wiskje foar reservekopy ynstelle. Standert komt rotaasje foar neidat in reservekopy makke is. Tink derom dat yn dit gefal de âlde backups
sil wiske wurde foardat de aktuele reservekopy wurdt makke.
Recovery proseduere
Run playbook mei parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(bygelyks 2017-12-17-21-00-00 foar 17 desimber 2017 om 21:00 oere
Ferwiderje nexus
Warskôging: Dit sil jo hjoeddeistige gegevens folslein wiskje. Soargje derfoar dat jo earder in reservekopy meitsje as it nedich is
Brûk in fariabele nexus_purgeas jo fanôf it begjin opnij begjinne moatte en de nexus-eksimplaar opnij ynstallearje mei alle gegevens fuortsmiten.
Feroarje administrator wachtwurd nei earste ynstallaasje
nexus_default_admin_password: 'admin123'
Dit moat net feroare wurde yn jo playbook. Dizze fariabele wurdt befolke mei it standert Nexus admin wachtwurd by it earst ynstalleare en soarget derfoar dat wy it admin wachtwurd feroarje kinne yn nexus_admin_password.
As jo it administratorwachtwurd wizigje wolle nei de earste ynstallaasje, kinne jo it tydlik feroarje yn it âlde wachtwurd fan 'e kommandorigel. Nei feroaring nexus_admin_password yn jo playbook kinne jo útfiere: