ProHoster > Log > administrasjon > Installere og konfigurere Nexus Sonatype ved å bruke infrastrukturen som kodetilnærming
Installere og konfigurere Nexus Sonatype ved å bruke infrastrukturen som kodetilnærming
Sonatype Nexus er en integrert plattform der utviklere kan proxy, lagre og administrere Java (Maven)-avhengigheter, Docker, Python, Ruby, NPM, Bower-bilder, RPM-pakker, gitlfs, Apt, Go, Nuget og distribuere programvaresikkerheten deres.
Hvorfor trenger du Sonatype Nexus?
For oppbevaring av private gjenstander;
For bufring av artefakter som er lastet ned fra Internett;
Artefakter som støttes i den grunnleggende Sonatype Nexus-pakken:
Variabler med standardverdier (se default/main.yml):
Generelle variabler
nexus_version: ''
nexus_timezone: 'UTC'
Som standard vil rollen installere den siste tilgjengelige versjonen av Nexus. Du kan fikse versjonen ved å endre variabelen nexus_version. Se tilgjengelige versjoner på https://www.sonatype.com/download-oss-sonatype.
Hvis du bytter til en nyere versjon, vil rollen forsøke å oppdatere Nexus-installasjonen.
Hvis du bruker en eldre versjon av Nexus enn den nyeste, bør du sørge for at du ikke bruker funksjoner som ikke er tilgjengelige i den installerte versjonen (for eksempel er hosting av yum-repositories tilgjengelig for nexus større enn 3.8.0, git lfs repo for nexus større enn 3.3.0 osv.)
nexus timezone er navnet på Java-tidssonen, som kan være nyttig i kombinasjon med følgende cron-uttrykk for nexus_scheduled-oppgaver.
Porten og kontekstbanen til Java-tilkoblingsprosessen. nexus_default_context_path må inneholde en skråstrek når den er satt, f.eks: nexus_default_context_path: '/nexus/'.
Nexus OS-bruker og -gruppe
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Brukeren og gruppen som brukes til å eie Nexus-filer og kjøre tjenesten vil bli opprettet av rollen hvis en mangler.
nexus_os_user_home_dir: '/home/nexus'
Tillat endring av standard hjemmekatalog for nexus-brukeren
nexus_installation_dir inneholder installerte kjørbare filer
nexus_data_dir inneholder all konfigurasjon, repositories og nedlastede artefakter. Egendefinerte blobstore-baner nexus_data_dir kan tilpasses, se nedenfor nexus_blobstores.
nexus_tmp_dir inneholder alle midlertidige filer. Standardbanen for redhat er flyttet fra /tmp for å overvinne potensielle problemer med automatiske rengjøringsprosedyrer. Se #168.
Dette er standardinnstillingene for Nexus. Vennligst ikke endre disse verdieneHvis du ikke har lest minneseksjon for nexus systemkrav og forstår ikke hva de gjør.
Som en annen advarsel, her er et utdrag fra dokumentet ovenfor:
Det anbefales ikke å øke JVM-haugminnet utover de anbefalte verdiene i et forsøk på å forbedre ytelsen. Dette kan faktisk ha motsatt effekt, og resultere i unødvendig arbeid for operativsystemet.
Administratorpassord
nexus_admin_password: 'changeme'
«admin»-kontopassordet for oppsett. Dette fungerer kun på den første standardinstallasjonen. Vennligst se [Endre administratorpassord etter første installasjon](# change-admin-password-after-first-install) hvis du vil endre det senere med en rolle.
Det anbefales på det sterkeste å ikke lagre passordet ditt i klartekst i spilleboken, men å bruke [ansible-vault-kryptering] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (enten inline eller i en separat fil lastet med f.eks. include_vars)
Anonym tilgang som standard
nexus_anonymous_access: false
Anonym tilgang er deaktivert som standard. Les mer om anonym tilgang.
Disse variablene styrer hvordan rollen kobles til Nexus API for klargjøring. Kun for avanserte brukere. Du vil sannsynligvis ikke endre disse standardinnstillingene
Satt SSL omvendt proxy.
For å gjøre dette må du installere httpd. Merk: når for httpd_setup_enable angi verditrue, nexus-kontakter 127.0.0.1:8081, altså no være direkte tilgjengelig via HTTP-port 8081 fra den eksterne IP-adressen.
Standard vertsnavn som brukes er nexus_public_hostname. Hvis du trenger forskjellige navn av en eller annen grunn, kan du stille inn httpd_server_name med en annen betydning.
С httpd_copy_ssl_files: true (som standard) skal sertifikatene ovenfor finnes i din playbook-katalog og vil bli kopiert til serveren og konfigurert i apache.
Hvis du vil bruke eksisterende sertifikater på serveren, installer httpd_copy_ssl_files: false og oppgi følgende variabler:
# 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 er valgfritt og bør ikke angis hvis du ikke vil tilpasse kjedefilen
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
Liste privilegier for innstillinger. Se på dokumentasjonen og GUI for å sjekke hvilke variabler som må angis avhengig av rettighetstypen.
Disse elementene er kombinert med følgende standardverdier:
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
Liste over lokale (ikke-LDAP) brukere/kontoer som skal opprettes i nexus.
Liste over lokale (ikke-LDAP) brukere/kontoer som skal opprettes i Nexus.
Ldap kartlegging av brukere/roller. Stat absent vil fjerne roller fra en eksisterende bruker hvis en allerede eksisterer.
Ldap-brukere slettes ikke. Å prøve å angi en rolle for en ikke-eksisterende bruker vil resultere i en feil.
Innholdsvelgere
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
For mer informasjon om innholdsvelgeren, se Dokumentasjon.
For å bruke innholdsvelgeren, legg til et nytt privilegium med type: repository-content-selector og relevantcontentSelector
Slett repositoriene fra den opprinnelige standardkonfigurasjonen for nexus install. Dette trinnet utføres bare ved førstegangsinstallasjon (når nexus_data_dir har blitt oppdaget tom).
Fjerner depoter fra standard standardkonfigurasjon for Nexus. Dette trinnet utføres kun under den første installasjonen (når nexus_data_dir tømme).
nexus_delete_default_blobstore: false
Slett standard blobstore fra den opprinnelige standardkonfigurasjonen for nexus install. Dette kan bare gjøres hvis nexus_delete_default_repos: true og alle konfigurerte depoter (se nedenfor) har en eksplisitt blob_store: custom. Dette trinnet utføres bare ved førstegangsinstallasjon (når nexus_data_dir har blitt oppdaget tom).
Fjerning av blob-lagring (binære artefakter) er deaktivert som standard fra den opprinnelige konfigurasjonen. For å fjerne blob-lagring (binære artefakter), slå av nexus_delete_default_repos: true. Dette trinnet utføres bare under den første installasjonen (når nexus_data_dir tømme).
Blobstores å lage. En blobstore-bane og en repository blobstore kan ikke oppdateres etter den første opprettelsen (enhver oppdatering her vil bli ignorert ved re-provisjonering).
Konfigurering av blobstore på S3 er gitt som en bekvemmelighet og er ikke en del av de automatiserte testene vi kjører på travis. Vær oppmerksom på at lagring på S3 kun anbefales for tilfeller som er distribuert på AWS.
Opprettelse Blobstores. Lagringsbanen og lagringsdepotet kan ikke oppdateres etter den første opprettelsen (enhver oppdatering her vil bli ignorert når den installeres på nytt).
Å sette opp blob-lagring på S3 er gitt som en bekvemmelighet. Vær oppmerksom på at S3-lagring kun anbefales for forekomster som er distribuert på AWS.
Over er et eksempel på konfigurasjon 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 vertslagring konfigurasjon. Negativ cache-konfigurasjon er valgfri og vil som standard ha verdiene ovenfor hvis den utelates.
Konfigurasjon vertslagring Maven. Den negative hurtigbufferkonfigurasjonen (-1) er valgfri og vil som standard ha verdiene ovenfor hvis ikke spesifisert.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Alle tre depottypene er kombinert med følgende standardverdier:
_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 og yum depottyper:
se defaults/main.yml for disse alternativene:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS og yum repositories er deaktivert som standard:
se defaults/main.yml for disse alternativene:
Sikkerhetskopiering vil ikke bli konfigurert før du bytter nexus_backup_configure в true.
I dette tilfellet vil den planlagte skriptoppgaven konfigureres til å kjøre på Nexus
med intervallet angitt i nexus_backup_cron (standard 21:00 hver dag).
Se [groovy mal for denne oppgaven](templates/backup.groovy.j2) for detaljer.
Denne planlagte oppgaven er uavhengig av andre nexus_scheduled_tasksHvilken deg
kunngjøre i spilleboken din.
Hvis du vil rotere/slette sikkerhetskopier, installer nexus_backup_rotate: true og konfigurer antall sikkerhetskopier du vil lagre ved å bruke nexus_backup_keep_rotations (standard 4).
Når du bruker rotasjon, hvis du vil spare ekstra diskplass under sikkerhetskopieringsprosessen,
Du kan installere nexus_backup_rotate_first: true. Dette vil konfigurere forhåndsrotasjon/sletting før sikkerhetskopiering. Som standard skjer rotasjon etter at en sikkerhetskopi er opprettet. Vær oppmerksom på at i dette tilfellet de gamle sikkerhetskopiene
vil bli slettet før gjeldende sikkerhetskopiering er laget.
Gjenopprettingsprosedyre
Kjør playbook med parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(for eksempel 2017-12-17-21-00-00 for 17. desember 2017 kl. 21:00
Fjerner nexus
Advarsel: Dette vil slette dine nåværende data fullstendig. Sørg for å ta en sikkerhetskopi tidligere om nødvendig
Bruk en variabel nexus_purgehvis du trenger å starte på nytt fra bunnen av og installere nexus-forekomsten på nytt med alle data fjernet.
Endre administratorpassord etter første installasjon
nexus_default_admin_password: 'admin123'
Dette bør ikke endres i spilleboken din. Denne variabelen fylles ut med standard Nexus-administratorpassord når den først installeres, og sikrer at vi kan endre administratorpassordet til nexus_admin_password.
Hvis du vil endre administratorpassordet etter den første installasjonen, kan du midlertidig endre det til det gamle passordet fra kommandolinjen. Etter endring nexus_admin_password i spilleboken din kan du kjøre: