ProHoster > Blog > Adminisztráció > A Nexus Sonatype telepítése és konfigurálása az infrastruktúra kódalapú megközelítéssel
A Nexus Sonatype telepítése és konfigurálása az infrastruktúra kódalapú megközelítéssel
A Sonatype Nexus egy integrált platform, amelyen keresztül a fejlesztők proxyt adhatnak, tárolhatnak és kezelhetnek Java (Maven) függőségeket, Docker, Python, Ruby, NPM, Bower képeket, RPM-csomagokat, gitlf-eket, Apt-t, Go-t, Nugetet, és terjeszthetik szoftverbiztonságukat.
Miért van szüksége Sonatype Nexusra?
Magántárgyak tárolására;
Az internetről letöltött műtermékek gyorsítótárazásához;
Az alap Sonatype Nexus csomagban támogatott melléktermékek:
Alapértelmezés szerint a szerepkör a Nexus legújabb elérhető verzióját telepíti. A verziót a változó megváltoztatásával javíthatja nexus_version. Tekintse meg az elérhető verziókat a címen https://www.sonatype.com/download-oss-sonatype.
Ha újabb verzióra vált, a szerepkör megpróbálja frissíteni a Nexus telepítését.
Ha a Nexus egy régebbi verzióját használja, mint a legújabb, győződjön meg arról, hogy nem használ olyan szolgáltatásokat, amelyek nem állnak rendelkezésre a telepített kiadásban (például a yum adattárak tárolása elérhető a 3.8.0-nál nagyobb nexushoz, git lfs repo 3.3.0-nál nagyobb nexushoz stb.)
nexus timezone a Java időzóna neve, amely hasznos lehet a következő cron kifejezésekkel kombinálva a nexus_scheduled feladatokhoz.
A Java csatlakozási folyamat portja és környezeti elérési útja. nexus_default_context_path beállításakor perjelet kell tartalmaznia, pl.: nexus_default_context_path: '/nexus/'.
Nexus OS felhasználó és csoport
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
A Nexus-fájlok birtokában lévő és a szolgáltatást futtató felhasználót és csoportot a szerepkör hozza létre, ha hiányzik.
nexus_os_user_home_dir: '/home/nexus'
Engedélyezze az alapértelmezett kezdőkönyvtár módosítását a nexus felhasználó számára
nexus_installation_dir telepített futtatható fájlokat tartalmaz
nexus_data_dir tartalmazza az összes konfigurációt, adattárakat és letöltött melléktermékeket. Egyéni blobstore elérési utak nexus_data_dir testreszabható, lásd alább nexus_blobstores.
nexus_tmp_dir tartalmazza az összes ideiglenes fájlt. A redhat alapértelmezett elérési útja el lett helyezve /tmp az automatikus tisztítási eljárásokkal kapcsolatos lehetséges problémák leküzdésére. Lásd #168.
Ezek a Nexus alapértelmezett beállításai. Kérjük, ne változtassa meg ezeket az értékeketHa nem olvastad nexus rendszerkövetelmények memóriarész és nem értik, mit csinálnak.
Második figyelmeztetésként álljon itt egy részlet a fenti dokumentumból:
Nem ajánlott a JVM kupacmemóriát az ajánlott értékek fölé növelni a teljesítmény javítása érdekében. Ennek éppen ellenkező hatása lehet, ami szükségtelen munkát eredményezhet az operációs rendszer számára.
Rendszergazda jelszó
nexus_admin_password: 'changeme'
Az „admin” fiók jelszava a beállításhoz. Ez csak az első alapértelmezett telepítéskor működik. Kérjük, olvassa el a [Rendszergazdai jelszó módosítása az első telepítés után] (# change-admin-password-af-first-install) című részt, ha később egy szerepkör használatával szeretné módosítani.
Erősen ajánlott, hogy ne tárolja a jelszavát tiszta szövegben a játékkönyvben, hanem használja az [ansible-vault titkosítást] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (akár soron belül, akár egy külön fájlban, amely például az include_vars paraméterrel van betöltve)
Alapértelmezés szerint névtelen hozzáférés
nexus_anonymous_access: false
Az anonim hozzáférés alapértelmezés szerint le van tiltva. Olvasson többet a névtelen hozzáférés.
Ezek a változók szabályozzák, hogy a szerepkör hogyan csatlakozik a Nexus API-hoz a kiépítéshez. Csak haladó felhasználóknak. Valószínűleg nem szeretné megváltoztatni ezeket az alapértelmezett beállításokat
Készlet SSL fordított proxy.
Ehhez telepítenie kell a httpd-t. Megjegyzés: mikor httpd_setup_enable érték beállításatrue, nexus kapcsolatok 127.0.0.1:8081, így nincs közvetlenül elérhető a 8081-es HTTP-porton keresztül a külső IP-címről.
A használt alapértelmezett gazdagépnév: nexus_public_hostname. Ha valamilyen okból más nevekre van szüksége, beállíthatja httpd_server_name más jelentéssel.
С httpd_copy_ssl_files: true (alapértelmezés szerint) a fenti tanúsítványoknak a játékkönyvkönyvtárban kell lenniük, és a kiszolgálóra másolják, és az apache-ban konfigurálják.
Ha meglévő tanúsítványokat szeretne használni a kiszolgálón, telepítse httpd_copy_ssl_files: false és adja meg a következő változókat:
# 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 opcionális, és nem kell beállítani, ha nem szeretné személyre szabni a láncfájlt
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 kiváltságokat beállításokhoz. Tekintse meg a dokumentációt és a grafikus felhasználói felületet, hogy ellenőrizze, mely változókat kell beállítani a jogosultság típusától függően.
Ezek az elemek a következő alapértelmezett értékekkel vannak kombinálva:
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
A nexusban létrehozandó helyi (nem LDAP) felhasználók/fiókok listája.
A Nexusban létrehozandó helyi (nem LDAP) felhasználók/fiókok listája.
A felhasználók/szerepek Ldap leképezése. Állapot absent eltávolítja a szerepeket egy meglévő felhasználótól, ha már létezik.
Az Ldap felhasználók nem törlődnek. Ha egy nem létező felhasználó szerepkörét próbálja beállítani, az hibát eredményez.
Tartalomválasztók
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
A tartalomválasztóval kapcsolatos további információkért lásd: Dokumentáció.
A tartalomválasztó használatához adjon hozzá új jogosultságot a következővel: type: repository-content-selector és relevánscontentSelector
Törölje a lerakatokat a nexus telepítés kezdeti alapértelmezett konfigurációjából. Ezt a lépést csak az első telepítéskor hajtja végre (amikor nexus_data_dir üres).
Lerakatok eltávolítása a Nexus alapértelmezett alapértelmezett konfigurációjából. Ezt a lépést csak az első telepítés során hajtják végre (amikor nexus_data_dir üres).
nexus_delete_default_blobstore: false
Törölje az alapértelmezett blobstore-t a nexus telepítésének kezdeti alapértelmezett konfigurációjából. Ezt csak akkor lehet megtenni, ha nexus_delete_default_repos: true és minden beállított adattárnak (lásd alább) van egy explicit blob_store: custom. Ezt a lépést csak az első telepítéskor hajtja végre (amikor nexus_data_dir üres).
A blob-tároló (bináris melléktermékek) eltávolítása alapértelmezés szerint le van tiltva a kezdeti konfigurációból. A blob-tároló (bináris műtermékek) eltávolításához kapcsolja ki nexus_delete_default_repos: true. Ezt a lépést csak az első telepítés során hajtják végre (amikor nexus_data_dir üres).
Blobboltok készíteni. A blobstore elérési útja és a tárhely blobstore nem frissíthető a kezdeti létrehozás után (az itt végzett frissítéseket a rendszer figyelmen kívül hagyja az újrakiépítéskor).
A blobstore konfigurálása az S3-on kényelem, és nem része a travison futtatott automatizált teszteknek. Kérjük, vegye figyelembe, hogy az S3-on való tárolás csak az AWS-en telepített példányok esetén javasolt.
Teremtés Blobboltok. A tárolási útvonal és a tárhely nem frissíthető a kezdeti létrehozás után (az itt található frissítéseket a rendszer figyelmen kívül hagyja az újbóli telepítéskor).
A blob-tárhely beállítása az S3-on kényelmi szolgáltatás. Kérjük, vegye figyelembe, hogy az S3 tárhely csak az AWS-en telepített példányokhoz ajánlott.
A fenti konfigurációs példa látható proxy szerver Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven hosztolt adattárak konfigurációt. A negatív gyorsítótár-konfiguráció nem kötelező, és ha kihagyja, alapértelmezés szerint a fenti értékek lesznek.
Configuration hosztolt adattárak Maven. A negatív gyorsítótár-konfiguráció (-1) nem kötelező, és ha nincs megadva, alapértelmezés szerint a fenti értékek lesznek.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Mindhárom adattártípus a következő alapértelmezett értékekkel kombinálva van:
_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 és yum adattártípusok:
lát defaults/main.yml ezekhez a lehetőségekhez:
A Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS és yum adattárak alapértelmezés szerint le vannak tiltva:
Lát defaults/main.yml ezekhez a lehetőségekhez:
Kérjük, vegye figyelembe, hogy bizonyos biztonsági hatóköröket engedélyeznie kell, ha a maventől eltérő más típusú tárolókat szeretne használni. Ez alapértelmezés szerint hamis
A biztonsági mentés nem lesz konfigurálva, amíg nem vált át nexus_backup_configure в true.
Ebben az esetben az ütemezett szkriptfeladat Nexuson futásra lesz konfigurálva
pontjában meghatározott időközönként nexus_backup_cron (alapértelmezett 21:00 minden nap).
A részletekért lásd: [groovy sablon ehhez a feladathoz](templates/backup.groovy.j2).
Ez az ütemezett feladat független a többitől nexus_scheduled_tasksamit te
jelentse be a játékkönyvében.
Ha el szeretné forgatni/törölni a biztonsági másolatokat, telepítse nexus_backup_rotate: true és állítsa be a menteni kívánt biztonsági másolatok számát nexus_backup_keep_rotations (alapértelmezett 4).
Forgatás használatakor, ha további lemezterületet szeretne megtakarítani a biztonsági mentési folyamat során,
Telepítheti nexus_backup_rotate_first: true. Ez beállítja az előforgatást/törlést a biztonsági mentés előtt. Alapértelmezés szerint a forgatás a biztonsági mentés létrehozása után történik. Felhívjuk figyelmét, hogy ebben az esetben a régi biztonsági másolatokat
törlésre kerül az aktuális biztonsági mentés előtt.
Helyreállítási eljárás
Futtassa a forgatókönyvet paraméterekkel -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(például 2017-12-17-21-00-00, 17. december 2017. 21:00
Nexus eltávolítása
Figyelmeztetés: Ezzel teljesen törli az aktuális adatait. Ha szükséges, mindenképpen készítsen biztonsági másolatot korábban
Használj változót nexus_purgeha újra kell indítania a nulláról, és újra kell telepítenie a nexus példányt az összes adat eltávolításával.
Az első telepítés után módosítsa a rendszergazdai jelszót
nexus_default_admin_password: 'admin123'
Ezt nem szabad megváltoztatni a játékkönyvében. Ez a változó az alapértelmezett Nexus rendszergazdai jelszóval van feltöltve az első telepítéskor, és biztosítja, hogy módosíthassuk az adminisztrátori jelszót nexus_admin_password.
Ha az első telepítés után módosítani szeretné a rendszergazdai jelszót, ideiglenesen módosíthatja azt a parancssorból a régi jelszóra. Változás után nexus_admin_password a játékkönyvedben futtathatod: