ProHoster > blogg > administration > Installera och konfigurera Nexus Sonatype med hjälp av infrastrukturen som kodmetoder
Installera och konfigurera Nexus Sonatype med hjälp av infrastrukturen som kodmetoder
Sonatype Nexus är en integrerad plattform genom vilken utvecklare kan proxy, lagra och hantera Java (Maven) beroenden, Docker, Python, Ruby, NPM, Bower images, RPM-paket, gitlfs, Apt, Go, Nuget och distribuera sin mjukvarusäkerhet.
Varför behöver du Sonatype Nexus?
För förvaring av privata artefakter;
För cachelagring av artefakter som laddas ner från Internet;
Artefakter som stöds i det grundläggande Sonatype Nexus-paketet:
Variabler med standardvärden (se default/main.yml):
Allmänna variabler
nexus_version: ''
nexus_timezone: 'UTC'
Som standard kommer rollen att installera den senaste tillgängliga versionen av Nexus. Du kan fixa versionen genom att ändra variabeln nexus_version. Se tillgängliga versioner på https://www.sonatype.com/download-oss-sonatype.
Om du byter till en nyare version kommer rollen att försöka uppdatera din Nexus-installation.
Om du använder en äldre version av Nexus än den senaste, bör du se till att du inte använder funktioner som inte är tillgängliga i den installerade versionen (till exempel är värd för yum-repositories tillgängligt för nexus större än 3.8.0, git lfs repo för nexus större än 3.3.0 etc.)
nexus timezone är namnet på Java-tidszonen, vilket kan vara användbart i kombination med följande cron-uttryck för nexus_scheduled-uppgifter.
Porten och kontextsökvägen för Java-anslutningsprocessen. nexus_default_context_path måste innehålla ett snedstreck när det är inställt, t.ex. nexus_default_context_path: '/nexus/'.
Nexus OS-användare och -grupp
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Användaren och gruppen som används för att äga Nexus-filer och köra tjänsten kommer att skapas av rollen om en saknas.
nexus_os_user_home_dir: '/home/nexus'
Tillåt ändring av standardhemkatalogen för nexusanvändaren
nexus_installation_dir innehåller installerade körbara filer
nexus_data_dir innehåller alla konfigurationer, arkiv och nedladdade artefakter. Anpassade blobstore-vägar nexus_data_dir kan anpassas, se nedan nexus_blobstores.
nexus_tmp_dir innehåller alla temporära filer. Standardsökvägen för redhat har flyttats från /tmp för att övervinna potentiella problem med automatiska rengöringsprocedurer. Se #168.
Det här är standardinställningarna för Nexus. Ändra inte dessa värdenOm du inte har läst nexus systemkrav minne avsnitt och förstår inte vad de gör.
Som en andra varning, här är ett utdrag ur dokumentet ovan:
Det rekommenderas inte att öka JVM-högminnet utöver de rekommenderade värdena i ett försök att förbättra prestandan. Detta kan faktiskt ha motsatt effekt, vilket resulterar i onödigt arbete för operativsystemet.
Administratörslösenord
nexus_admin_password: 'changeme'
Lösenordet för "admin"-kontot för installation. Detta fungerar bara på den första standardinstallationen. Se [Ändra administratörslösenord efter första installationen](# change-admin-password-after-first-install) om du vill ändra det senare med en roll.
Det rekommenderas starkt att inte lagra ditt lösenord i klartext i spelboken, utan att använda [ansible-vault-kryptering] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (antingen inline eller i en separat fil laddad med t.ex. include_vars)
Anonym åtkomst som standard
nexus_anonymous_access: false
Anonym åtkomst är inaktiverad som standard. Läs mer om anonym åtkomst.
Dessa variabler styr hur rollen ansluter till Nexus API för administration. Endast för avancerade användare. Du vill förmodligen inte ändra dessa standardinställningar
Ställ SSL omvänd proxy.
För att göra detta måste du installera httpd. Obs: när för httpd_setup_enable satt värdetrue, nexus-kontakter 127.0.0.1:8081, alltså ingen är direkt åtkomlig via HTTP-port 8081 från den externa IP-adressen.
Standardvärdnamnet som används är nexus_public_hostname. Om du behöver olika namn av någon anledning kan du ställa in httpd_server_name med en annan innebörd.
С httpd_copy_ssl_files: true (som standard) ovanstående certifikat bör finnas i din playbook-katalog och kommer att kopieras till servern och konfigureras i apache.
Om du vill använda befintliga certifikat på servern, installera httpd_copy_ssl_files: false och ange följande 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 är valfritt och bör lämnas inställt om du inte vill anpassa kedjefilen
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
Lista privilegier för inställningar. Titta i dokumentationen och GUI för att kontrollera vilka variabler som behöver ställas in beroende på behörighetstypen.
Dessa element kombineras med följande standardvärden:
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 över lokala (icke-LDAP) användare/konton att skapa i nexus.
Lista över lokala (icke-LDAP) användare/konton som ska skapas i Nexus.
Ldap kartläggning av användare/roller. stat absent kommer att ta bort roller från en befintlig användare om en redan finns.
Ldap-användare tas inte bort. Att försöka ställa in en roll för en icke-existerande användare kommer att resultera i ett fel.
Innehållsväljare
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
För mer information om innehållsväljaren, se Dokumentation.
För att använda innehållsväljaren, lägg till en ny behörighet med type: repository-content-selector och relevantcontentSelector
Ta bort arkiven från den ursprungliga standardkonfigurationen för nexus installation. Det här steget utförs endast vid förstagångsinstallation (när nexus_data_dir har upptäckts tomt).
Tar bort arkiv från standardkonfigurationen för Nexus. Detta steg utförs endast under den första installationen (när nexus_data_dir tömma).
nexus_delete_default_blobstore: false
Ta bort standard blobstore från nexus installations initiala standardkonfiguration. Detta kan endast göras om nexus_delete_default_repos: true och alla konfigurerade förråd (se nedan) har en explicit blob_store: custom. Det här steget utförs endast vid förstagångsinstallation (när nexus_data_dir har upptäckts tomt).
Att ta bort blob-lagring (binära artefakter) är inaktiverat som standard från den initiala konfigurationen. För att ta bort bloblagring (binära artefakter), stäng av nexus_delete_default_repos: true. Detta steg utförs endast under den första installationen (när nexus_data_dir tömma).
Blobstores att skapa. En blobstore-sökväg och en repository blobstore kan inte uppdateras efter den första skapandet (alla uppdateringar här kommer att ignoreras vid omprovisionering).
Konfigurering av blobstore på S3 tillhandahålls som en bekvämlighet och är inte en del av de automatiserade tester vi kör på travis. Observera att lagring på S3 endast rekommenderas för instanser som distribueras på AWS.
Skapande Blobstores. Lagringssökvägen och lagringsförrådet kan inte uppdateras efter den första skapandet (alla uppdateringar här kommer att ignoreras när de installeras igen).
Att ställa in bloblagring på S3 tillhandahålls som en bekvämlighet. Observera att S3-lagring endast rekommenderas för instanser som distribueras på AWS.
Alla tre förvarstyper kombineras med följande standardvärden:
_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 och yum repository typer:
se defaults/main.yml för dessa alternativ:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS och yum repositories är inaktiverade som standard:
Se defaults/main.yml för dessa alternativ:
Säkerhetskopiering kommer inte att konfigureras förrän du byter nexus_backup_configure в true.
I det här fallet kommer den schemalagda skriptuppgiften att konfigureras för att köras på Nexus
med det intervall som anges i nexus_backup_cron (standard 21:00 varje dag).
Se [groovy mall för denna uppgift](templates/backup.groovy.j2) för detaljer.
Denna schemalagda uppgift är oberoende av andra nexus_scheduled_tasksvilken du
meddela i din spelbok.
Om du vill rotera/ta bort säkerhetskopior, installera nexus_backup_rotate: true och konfigurera antalet säkerhetskopior du vill spara med nexus_backup_keep_rotations (standard 4).
När du använder rotation, om du vill spara ytterligare diskutrymme under säkerhetskopieringsprocessen,
Du kan installera nexus_backup_rotate_first: true. Detta kommer att konfigurera förrotering/borttagning före säkerhetskopiering. Som standard sker rotation efter att en säkerhetskopia har skapats. Observera att i detta fall de gamla säkerhetskopiorna
kommer att raderas innan den aktuella säkerhetskopian görs.
Återhämtningsprocedur
Kör playbook med parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(till exempel 2017-12-17-21-00-00 för 17 december 2017 kl. 21:00
Tar bort nexus
Varning: Detta kommer att radera din nuvarande data helt. Se till att göra en säkerhetskopia tidigare om det behövs
Använd en variabel nexus_purgeom du behöver starta om från början och installera om nexus-instansen med all data borttagen.
Ändra administratörslösenord efter första installationen
nexus_default_admin_password: 'admin123'
Detta bör inte ändras i din spelbok. Den här variabeln fylls i med standardlösenordet för Nexus administratör när den först installeras och säkerställer att vi kan ändra administratörslösenordet till nexus_admin_password.
Om du vill ändra administratörslösenordet efter den första installationen kan du tillfälligt ändra det till det gamla lösenordet från kommandoraden. Efter byte nexus_admin_password i din spelbok kan du köra: