ProHoster > Blog > podávání > Instalace a konfigurace Nexus Sonatype pomocí přístupu infrastruktury jako kódu
Instalace a konfigurace Nexus Sonatype pomocí přístupu infrastruktury jako kódu
Sonatype Nexus je integrovaná platforma, jejímž prostřednictvím mohou vývojáři proxy, ukládat a spravovat závislosti Java (Maven), Docker, Python, Ruby, NPM, Bower images, balíčky RPM, gitlfs, Apt, Go, Nuget a distribuovat své softwarové zabezpečení.
Proč potřebujete Sonatype Nexus?
Pro ukládání soukromých artefaktů;
Pro ukládání artefaktů, které jsou staženy z internetu, do mezipaměti;
Artefakty podporované v základním balíčku Sonatype Nexus:
Proměnné s výchozími hodnotami (viz default/main.yml):
Obecné proměnné
nexus_version: ''
nexus_timezone: 'UTC'
Ve výchozím nastavení role nainstaluje nejnovější dostupnou verzi zařízení Nexus. Verzi můžete opravit změnou proměnné nexus_version. Dostupné verze naleznete na https://www.sonatype.com/download-oss-sonatype.
Pokud přejdete na novější verzi, role se pokusí aktualizovat vaši instalaci zařízení Nexus.
Pokud používáte starší verzi Nexus než nejnovější, měli byste se ujistit, že nepoužíváte funkce, které nejsou dostupné v nainstalované verzi (například hostování yum repozitářů je k dispozici pro nexus vyšší než 3.8.0, git lfs repo pro nexus větší než 3.3.0 atd.)
nexus timezone je název časové zóny Java, který může být užitečný v kombinaci s následujícími cronovými výrazy pro úlohy nexus_scheduled.
Port a kontextová cesta procesu připojení Java. nexus_default_context_path musí obsahovat lomítko, když je nastaveno, např. nexus_default_context_path: '/nexus/'.
Uživatel a skupina operačního systému Nexus
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Uživatel a skupina, která vlastní soubory Nexus a spouští službu, bude vytvořena rolí, pokud jedna chybí.
nexus_os_user_home_dir: '/home/nexus'
Povolit změnu výchozího domovského adresáře pro uživatele zařízení Nexus
nexus_installation_dir obsahuje nainstalované spustitelné soubory
nexus_data_dir obsahuje veškerou konfiguraci, úložiště a stažené artefakty. Vlastní cesty blobstore nexus_data_dir lze přizpůsobit, viz níže nexus_blobstores.
nexus_tmp_dir obsahuje všechny dočasné soubory. Výchozí cesta pro redhat byla přesunuta /tmp k překonání potenciálních problémů s automatickými čisticími postupy. Viz #168.
Jako druhé varování uvádíme výňatek z výše uvedeného dokumentu:
Nedoporučuje se zvyšovat paměť haldy JVM nad doporučené hodnoty ve snaze zlepšit výkon. To může mít ve skutečnosti opačný efekt, což má za následek zbytečnou práci pro operační systém.
Heslo správce
nexus_admin_password: 'changeme'
Heslo účtu „admin“ pro nastavení. Toto funguje pouze při první výchozí instalaci. Chcete-li jej později změnit pomocí role, přečtěte si část [Změnit heslo správce po první instalaci](# change-admin-password-after-first-install).
Tyto proměnné řídí, jak se role připojuje k rozhraní Nexus API pro zřizování. Pouze pro pokročilé uživatele. Tato výchozí nastavení pravděpodobně nebudete chtít měnit
Sada SSL Reverzní proxy.
Chcete-li to provést, musíte nainstalovat httpd. Poznámka: kdy pro httpd_setup_enable nastavená hodnotatrue, nexus kontakty 127.0.0.1:8081, tedy ne je přímo přístupný přes HTTP port 8081 z externí IP adresy.
Výchozí použitý název hostitele je nexus_public_hostname. Pokud z nějakého důvodu potřebujete jiná jména, můžete je nastavit httpd_server_name s jiným významem.
С httpd_copy_ssl_files: true (ve výchozím nastavení) by výše uvedené certifikáty měly existovat v adresáři vaší příručky a budou zkopírovány na server a nakonfigurovány v Apache.
Pokud chcete na serveru použít existující certifikáty, nainstalujte httpd_copy_ssl_files: false a zadejte následující proměnné:
# 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 je volitelná a měla by být ponechána nenastavená, pokud nechcete upravovat soubor řetězce
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
seznam privilegia pro nastavení. Podívejte se do dokumentace a GUI a zkontrolujte, které proměnné je třeba nastavit v závislosti na typu oprávnění.
Tyto prvky jsou kombinovány s následujícími výchozími hodnotami:
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
Seznam místních (ne LDAP) uživatelů/účtů k vytvoření v nexus.
Seznam místních uživatelů/účtů (bez protokolu LDAP), které se mají v zařízení Nexus vytvořit.
Ldap mapování uživatelů/rolí. Stát absent odebere role existujícímu uživateli, pokud již existuje.
Uživatelé Ldap nebudou odstraněni. Pokus o nastavení role pro neexistujícího uživatele bude mít za následek chybu.
Selektory obsahu
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Další informace o selektoru obsahu viz Dokumentace.
Chcete-li použít selektor obsahu, přidejte nové oprávnění s type: repository-content-selector a relevantnícontentSelector
Odstraňte úložiště z výchozí výchozí konfigurace instalace nexus. Tento krok se provede pouze při první instalaci (když nexus_data_dir bylo zjištěno prázdné).
Odebírání úložišť z výchozí výchozí konfigurace zařízení Nexus. Tento krok se provádí pouze při první instalaci (když nexus_data_dir prázdný).
nexus_delete_default_blobstore: false
Odstraňte výchozí úložiště blobstore z výchozí výchozí konfigurace instalace zařízení nexus. To lze provést pouze v případě nexus_delete_default_repos: true a všechna nakonfigurovaná úložiště (viz níže) mají explicit blob_store: custom. Tento krok se provede pouze při první instalaci (když nexus_data_dir bylo zjištěno prázdné).
Odebírání úložiště objektů blob (binární artefakty) je ve výchozí konfiguraci zakázáno. Chcete-li odstranit úložiště objektů blob (binární artefakty), vypněte nexus_delete_default_repos: true. Tento krok se provádí pouze při první instalaci (když nexus_data_dir prázdný).
Blobstores vytvořit. Cestu k úložišti blobstore a úložiště blobstore úložiště nelze po počátečním vytvoření aktualizovat (jakákoli aktualizace zde bude při opětovném zřizování ignorována).
Konfigurace blobstore na S3 je poskytována pro pohodlí a není součástí automatických testů, které spouštíme na travis. Upozorňujeme, že ukládání na S3 se doporučuje pouze pro instance nasazené na AWS.
Stvoření Blobstores. Cestu úložiště a úložiště úložiště nelze po prvním vytvoření aktualizovat (jakákoli aktualizace zde bude při opětovné instalaci ignorována).
Nastavení úložiště objektů blob na S3 je poskytováno pro pohodlí. Vezměte prosím na vědomí, že úložiště S3 se doporučuje pouze pro instance nasazené na AWS.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven hostovaná úložiště konfigurace. Negativní konfigurace mezipaměti je volitelná a pokud je vynecháte, použije se jako výchozí výše uvedené hodnoty.
Konfigurace hostovaná úložiště Maven. Negativní konfigurace mezipaměti (-1) je volitelná a nebude-li specifikována, použije se jako výchozí výše uvedené hodnoty.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Všechny tři typy úložiště jsou kombinovány s následujícími výchozími hodnotami:
_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
Typy úložišť Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS a yum:
vidět defaults/main.yml pro tyto možnosti:
Úložiště Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS a yum jsou ve výchozím nastavení zakázány:
vidět defaults/main.yml pro tyto možnosti:
Vezměte prosím na vědomí, že možná budete muset povolit určité rozsahy zabezpečení, pokud chcete používat jiné typy úložišť než maven. Toto je ve výchozím nastavení nepravdivé
Zálohování nebude nakonfigurováno, dokud nepřepnete nexus_backup_configure в true.
V tomto případě bude naplánovaná úloha skriptu nakonfigurována tak, aby se spouštěla na zařízení Nexus
v intervalu uvedeném v nexus_backup_cron (výchozí 21:00 každý den).
Podrobnosti naleznete v [šablona groovy pro tuto úlohu] (templates/backup.groovy.j2).
Tato naplánovaná úloha je nezávislá na ostatních nexus_scheduled_taskskteré vy
oznamte ve své příručce.
Pokud chcete otáčet/mazat zálohy, nainstalujte nexus_backup_rotate: true a nakonfigurujte počet záloh, které chcete ukládat nexus_backup_keep_rotations (výchozí 4).
Při použití rotace, pokud chcete ušetřit další místo na disku během procesu zálohování,
Můžete nainstalovat nexus_backup_rotate_first: true. Tím se nakonfiguruje předběžné otočení/vymazání před zálohováním. Ve výchozím nastavení dochází k rotaci po vytvoření zálohy. Vezměte prosím na vědomí, že v tomto případě staré zálohy
budou odstraněny před vytvořením aktuální zálohy.
Postup obnovy
Spusťte playbook s parametrem -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(například 2017-12-17-21-00-00 pro 17. prosince 2017 ve 21:00
Odstraňování nexusu
Upozornění: Tímto zcela smažete svá aktuální data. V případě potřeby nezapomeňte provést zálohu dříve
Použijte proměnnou nexus_purgepokud potřebujete restartovat od nuly a znovu nainstalovat instanci nexus se všemi daty odstraněnými.
Toto by nemělo být ve vaší příručce změněno. Tato proměnná je při první instalaci vyplněna výchozím heslem správce zařízení Nexus a zajišťuje, že můžeme heslo správce změnit na nexus_admin_password.
Pokud chcete změnit heslo správce po první instalaci, můžete jej dočasně změnit na staré heslo z příkazového řádku. Po změně nexus_admin_password v playbooku můžete spustit: