ProHoster > Blog > Administrácia > Inštalácia a konfigurácia Nexus Sonatype s využitím infraštruktúry ako kódového prístupu
Inštalácia a konfigurácia Nexus Sonatype s využitím infraštruktúry ako kódového prístupu
Sonatype Nexus je integrovaná platforma, prostredníctvom ktorej môžu vývojári proxy, ukladať a spravovať závislosti Java (Maven), Docker, Python, Ruby, NPM, Bower obrázky, balíčky RPM, gitlfs, Apt, Go, Nuget a distribuovať svoje softvérové zabezpečenie.
Prečo potrebujete Sonatype Nexus?
Na ukladanie súkromných artefaktov;
Pre ukladanie artefaktov, ktoré sú stiahnuté z internetu;
Artefakty podporované v základnom balíku Sonatype Nexus:
Premenné s predvolenými hodnotami (pozri default/main.yml):
Všeobecné premenné
nexus_version: ''
nexus_timezone: 'UTC'
V predvolenom nastavení rola nainštaluje najnovšiu dostupnú verziu zariadenia Nexus. Verziu môžete opraviť zmenou premennej nexus_version. Pozrite si dostupné verzie na https://www.sonatype.com/download-oss-sonatype.
Ak prejdete na novšiu verziu, rola sa pokúsi aktualizovať vašu inštaláciu zariadenia Nexus.
Ak používate staršiu verziu zariadenia Nexus ako najnovšiu, mali by ste sa uistiť, že nepoužívate funkcie, ktoré nie sú dostupné v nainštalovanom vydaní (napríklad hosťovanie yum repozitárov je dostupné pre nexus väčšie ako 3.8.0, git lfs repo pre nexus väčšie ako 3.3.0 atď.)
nexus timezone je názov časovej zóny Java, ktorý môže byť užitočný v kombinácii s nasledujúcimi výrazmi cron pre úlohy nexus_scheduled.
Port a kontextová cesta procesu pripojenia Java. nexus_default_context_path musí obsahovať lomku, keď je nastavená, napr. nexus_default_context_path: '/nexus/'.
Používateľ a skupina operačného systému Nexus
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Používateľ a skupina, ktoré vlastnia súbory Nexus a spúšťajú službu, budú vytvorené rolou, ak jedna chýba.
nexus_os_user_home_dir: '/home/nexus'
Povoliť zmenu predvoleného domovského adresára pre používateľa zariadenia Nexus
nexus_installation_dir obsahuje nainštalované spustiteľné súbory
nexus_data_dir obsahuje všetku konfiguráciu, úložiská a stiahnuté artefakty. Vlastné cesty blobstore nexus_data_dir možno prispôsobiť, pozri nižšie nexus_blobstores.
nexus_tmp_dir obsahuje všetky dočasné súbory. Predvolená cesta pre redhat bola presunutá z /tmp na prekonanie potenciálnych problémov s automatickými čistiacimi postupmi. Pozri #168.
Ako druhé varovanie uvádzame úryvok z vyššie uvedeného dokumentu:
Neodporúča sa zvyšovať pamäť haldy JVM nad odporúčané hodnoty v snahe zlepšiť výkon. To môže mať v skutočnosti opačný efekt, výsledkom čoho je zbytočná práca pre operačný systém.
Heslo správcu
nexus_admin_password: 'changeme'
Heslo účtu „admin“ pre nastavenie. Toto funguje len pri prvej predvolenej inštalácii. Ak ho chcete neskôr zmeniť pomocou roly, pozrite si časť [Zmeniť heslo správcu po prvej inštalácii](# change-admin-password-after-first-install).
Tieto premenné riadia, ako sa rola pripája k rozhraniu Nexus API na poskytovanie. Len pre pokročilých používateľov. Tieto predvolené nastavenia pravdepodobne nebudete chcieť zmeniť
Sada SSL Reverzný proxy.
Ak to chcete urobiť, musíte nainštalovať httpd. Poznámka: kedy pre httpd_setup_enable nastavená hodnotatrue, nexus kontakty 127.0.0.1:8081, teda nie je priamo prístupný cez HTTP port 8081 z externej IP adresy.
Predvolený názov hostiteľa je nexus_public_hostname. Ak z nejakého dôvodu potrebujete iné mená, môžete ich nastaviť httpd_server_name s iným významom.
С httpd_copy_ssl_files: true (štandardne) vyššie uvedené certifikáty by mali existovať vo vašom adresári playbooku a budú skopírované na server a nakonfigurované v Apache.
Ak chcete použiť existujúce certifikáty na serveri, nainštalujte httpd_copy_ssl_files: false a uveďte nasledujúce premenné:
# 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 voliteľné a malo by byť ponechané nenastavené, ak nechcete upravovať reťazový súbor
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
Zoznam privilégiá pre nastavenia. Pozrite si dokumentáciu a GUI a skontrolujte, ktoré premenné je potrebné nastaviť v závislosti od typu oprávnenia.
Tieto prvky sú kombinované s nasledujúcimi predvolený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
Zoznam miestnych (nie LDAP) používateľov/účtov na vytvorenie v zariadení Nexus.
Zoznam miestnych používateľov/účtov (nie LDAP), ktoré sa majú vytvoriť v zariadení Nexus.
Ldap mapovanie používateľov/rolí. Štát absent odstráni roly z existujúceho používateľa, ak už existuje.
Používatelia Ldap sa neodstránia. Pokus o nastavenie roly pre neexistujúceho používateľa bude mať za následok chybu.
Selektory obsahu
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Ďalšie informácie o výbere obsahu nájdete v časti Dokumentácia.
Ak chcete použiť selektor obsahu, pridajte nové privilégium s type: repository-content-selector a relevantnécontentSelector
Odstráňte archívy z počiatočnej predvolenej konfigurácie inštalácie nexus. Tento krok sa vykoná len pri prvej inštalácii (keď nexus_data_dir bolo zistené prázdne).
Odstraňujú sa úložiská z predvolenej predvolenej konfigurácie pre Nexus. Tento krok sa vykonáva iba počas prvej inštalácie (keď nexus_data_dir prázdne).
nexus_delete_default_blobstore: false
Odstráňte predvolený blobstore z počiatočnej predvolenej konfigurácie inštalácie zariadenia Nexus. To sa dá urobiť iba ak nexus_delete_default_repos: true a všetky nakonfigurované úložiská (pozri nižšie) majú explicitný blob_store: custom. Tento krok sa vykoná len pri prvej inštalácii (keď nexus_data_dir bolo zistené prázdne).
Odstraňovanie úložiska objektov blob (binárne artefakty) je predvolene zakázané z počiatočnej konfigurácie. Ak chcete odstrániť úložisko blob (binárne artefakty), vypnite nexus_delete_default_repos: true. Tento krok sa vykonáva iba počas prvej inštalácie (keď nexus_data_dir prázdne).
Blobstores vytvárať. Cestu blobstore a úložisko blobstore úložiska nie je možné aktualizovať po prvom vytvorení (akákoľvek aktualizácia tu bude pri opätovnom poskytovaní ignorovaná).
Konfigurácia blobstore na S3 je poskytovaná ako pohodlie a nie je súčasťou automatických testov, ktoré spúšťame na travis. Upozorňujeme, že ukladanie na S3 sa odporúča iba pre inštancie nasadené na AWS.
Tvorba Blobstores. Cestu úložiska a úložisko úložiska nie je možné aktualizovať po prvom vytvorení (akákoľvek aktualizácia tu bude pri opätovnej inštalácii ignorovaná).
Nastavenie úložiska objektov blob na S3 je poskytované ako pohodlie. Upozorňujeme, že úložisko S3 sa odporúča iba pre inštancie nasadené na AWS.
Vyššie je uvedený príklad konfigurácie 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 hostované úložiská konfigurácia. Konfigurácia negatívnej vyrovnávacej pamäte je voliteľná a ak sa vynechá, predvolene sa použijú vyššie uvedené hodnoty.
konfigurácia hostované úložiská Maven. Záporná konfigurácia vyrovnávacej pamäte (-1) je voliteľná a ak nie je špecifikovaná, použije sa predvolene vyššie uvedené hodnoty.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Všetky tri typy úložiska sú kombinované s nasledujúcimi predvolený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žiska Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS a yum:
vidieť defaults/main.yml pre tieto možnosti:
Repozitáre Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS a yum sú predvolene vypnuté:
Vidieť defaults/main.yml pre tieto možnosti:
Zálohovanie nebude nakonfigurované, kým neprepnete nexus_backup_configure в true.
V tomto prípade bude naplánovaná úloha skriptu nakonfigurovaná na spustenie na zariadení Nexus
v intervale uvedenom v nexus_backup_cron (predvolene 21:00 každý deň).
Podrobnosti nájdete v [šablóna groovy pre túto úlohu] (templates/backup.groovy.j2).
Táto naplánovaná úloha je nezávislá od ostatných nexus_scheduled_tasksktoré si ty
oznámiť vo svojej príručke.
Ak chcete otočiť/vymazať zálohy, nainštalujte nexus_backup_rotate: true a nakonfigurujte počet záloh, ktoré chcete uložiť nexus_backup_keep_rotations (predvolené 4).
Ak pri používaní rotácie chcete ušetriť ďalšie miesto na disku počas procesu zálohovania,
Môžete nainštalovať nexus_backup_rotate_first: true. Týmto sa nakonfiguruje predbežné otočenie/vymazanie pred zálohovaním. Štandardne k rotácii dochádza po vytvorení zálohy. Upozorňujeme, že v tomto prípade staré zálohy
budú odstránené pred vytvorením aktuálnej zálohy.
Postup obnovy
Spustite príručku s parametrom -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(napríklad 2017-12-17-21-00-00 pre 17. decembra 2017 o 21:00
Odstraňuje sa nexus
Upozornenie: Týmto sa úplne vymažú vaše aktuálne údaje. V prípade potreby si vytvorte zálohu skôr
Použite premennú nexus_purgeak potrebujete reštartovať od začiatku a znova nainštalovať inštanciu nexus s odstránenými všetkými údajmi.
Toto by sa nemalo meniť vo vašej príručke. Táto premenná sa pri prvej inštalácii vyplní predvoleným heslom správcu zariadenia Nexus a zaisťuje, že môžeme heslo správcu zmeniť na nexus_admin_password.
Ak chcete zmeniť heslo správcu po prvej inštalácii, môžete ho dočasne zmeniť na staré heslo z príkazového riadka. Po zmene nexus_admin_password vo svojej príručke môžete spustiť: