A Sonatype Nexus egy integrált platform, amellyel a fejlesztők képesek Java (Maven) függőségeket, Docker képeket, Python, Ruby, NPM, Bower, RPM csomagokat, gitlfs, Apt, Go, Nuget tárolni és kezelni, valamint szoftverük terjesztését végezni.
Miért van szükség a Sonatype Nexusra?
- Privát artefaktumok tárolására;
- Az internetből letöltött artefaktumok gyorsítótárazására;
A Sonatype Nexus alapértelmezett csomagjában támogatott artefaktumok:
- Java, Maven (jar)
- Docker
- Python (pip)
- Ruby (gem)
- NPM
- Bower
- Yum (rpm)
- gitlfs
- Raw
- Apt (deb)
- Go
- Nuget
Közösség által támogatott artefaktumok:
- Composer
- Conan
- CPAN
- ELPA
- Helm
- P2
- R
A Sonatype Nexus telepítése az alábbiak segítségével
Követelmények
- Olvassa el az Ansible használatáról szóló anyagokat az interneten.
- Telepítse az Ansible-t
pip install ansiblearra a munkaállomásra, ahol a playbookot futtatni fogják. - Telepítse arra a munkaállomásra, ahol a playbookot futtatni fogják.
- Telepítse arra a munkaállomásra, ahol a playbookot futtatni fogják.
- Ez a szerep CentOS 7, Ubuntu Xenial (16.04) és Bionic (18.04), Debian Jessie és Stretch rendszerekre lett tesztelve.
jmespatha könyvtárat telepíteni kell arra a munkaállomásra, ahol a playbookot futtatni fogják. A telepítéshez futtassasudo pip install -r requirements.txt- Mentse el a playbook fájlt (példa lásd alább) nexus.yml néven
- Indítsa el a nexus telepítését
ansible-playbook -i host nexus.yml
Példa ansible-playbook a nexus LDAP nélküli telepítéséhez Maven (java), Docker, Python, Ruby, NPM, Bower, RPM és gitlfs tárolókkal.
---
- name: Nexus
hosts: nexus
become: yes
vars:
nexus_timezone: 'Asia/Omsk'
nexus_admin_password: "admin123"
nexus_public_hostname: 'apatsev-nexus-playbook'
httpd_setup_enable: false
nexus_privileges:
- name: all-repos-read
description: 'Olvasási és böngészési hozzáférés minden tárolóhoz'
repository: '*'
actions:
- read
- browse
- name: company-project-deploy
description: 'Telepítések a company-project-hez'
repository: company-project
actions:
- add
- edit
nexus_roles:
- id: Developpers # LDAP csoporthoz kapcsolódik
name: fejlesztők
description: Minden fejlesztő
privileges:
- nx-search-read
- all-repos-read
- company-project-deploy
roles: []
nexus_local_users:
- username: jenkins # kulcsként használva a frissítéshez
first_name: Jenkins
last_name: CI
email: support@company.com
password: "s3cr3t"
roles:
- Developpers # szerepkód itt
nexus_blobstores:
- name: company-artifacts
path: /var/nexus/blobs/company-artifacts
nexus_scheduled_tasks:
- name: compact-blobstore
cron: '0 0 22 * * ?'
typeId: blobstore.compact
taskProperties:
blobstoreName: 'company-artifacts'
nexus_repos_maven_proxy:
- name: central
remote_url: 'https://repo1.maven.org/maven2/'
layout_policy: permissive
- name: jboss
remote_url: 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
- name: vaadin-addons
remote_url: 'https://maven.vaadin.com/vaadin-addons/'
- name: jaspersoft
remote_url: 'https://jaspersoft.artifactoryonline.com/jaspersoft/jaspersoft-repo/'
version_policy: mixed
nexus_repos_maven_hosted:
- name: company-project
version_policy: mixed
write_policy: allow
blob_store: company-artifacts
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
- vaadin-addons
- jaspersoft
# Yum. A nexus_config_yum változtatásával hozzon létre yum tárolót
nexus_config_yum: true
nexus_repos_yum_hosted:
- name: private_yum_centos_7
repodata_depth: 1
nexus_repos_yum_proxy:
- name: epel_centos_7_x86_64
remote_url: http://download.fedoraproject.org/pub/epel/7/x86_64
maximum_component_age: -1
maximum_metadata_age: -1
negative_cache_ttl: 60
- name: centos-7-os-x86_64
remote_url: http://mirror.centos.org/centos/7/os/x86_64/
maximum_component_age: -1
maximum_metadata_age: -1
negative_cache_ttl: 60
nexus_repos_yum_group:
- name: yum_all
member_repos:
- private_yum_centos_7
- epel_centos_7_x86_64
# NPM. A nexus_config_npm változtatásával hozzon létre npm tárolót
nexus_config_npm: true
nexus_repos_npm_hosted: []
nexus_repos_npm_group:
- name: npm-public
member_repos:
- npm-registry
nexus_repos_npm_proxy:
- name: npm-registry
remote_url: https://registry.npmjs.org/
negative_cache_enabled: false
# Docker. A nexus_config_docker változtatásával hozzon létre docker tárolót
nexus_config_docker: true
nexus_repos_docker_hosted:
- name: docker-hosted
http_port: "{{ nexus_docker_hosted_port }}"
v1_enabled: True
nexus_repos_docker_proxy:
- name: docker-proxy
http_port: "{{ nexus_docker_proxy_port }}"
v1_enabled: True
index_type: "HUB"
remote_url: "https://registry-1.docker.io"
use_nexus_certificates_to_access_index: false
maximum_component_age: 1440
maximum_metadata_age: 1440
negative_cache_enabled: true
negative_cache_ttl: 1440
nexus_repos_docker_group:
- name: docker-group
http_port: "{{ nexus_docker_group_port }}"
v1_enabled: True
member_repos:
- docker-hosted
- docker-proxy
# Bower. A nexus_config_bower változtatásával hozzon létre bower tárolót
nexus_config_bower: true
nexus_repos_bower_hosted:
- name: bower-hosted
nexus_repos_bower_proxy:
- name: bower-proxy
index_type: "proxy"
remote_url: "https://registry.bower.io"
use_nexus_certificates_to_access_index: false
maximum_component_age: 1440
maximum_metadata_age: 1440
negative_cache_enabled: true
negative_cache_ttl: 1440
nexus_repos_bower_group:
- name: bower-group
member_repos:
- bower-hosted
- bower-proxy
# Pypi. A nexus_config_pypi változtatásával hozzon létre pypi tárolót
nexus_config_pypi: true
nexus_repos_pypi_hosted:
- name: pypi-hosted
nexus_repos_pypi_proxy:
- name: pypi-proxy
index_type: "proxy"
remote_url: "https://pypi.org/"
use_nexus_certificates_to_access_index: false
maximum_component_age: 1440
maximum_metadata_age: 1440
negative_cache_enabled: true
negative_cache_ttl: 1440
nexus_repos_pypi_group:
- name: pypi-group
member_repos:
- pypi-hosted
- pypi-proxy
# rubygems. A nexus_config_rubygems változtatásával hozzon létre rubygems tárolót
nexus_config_rubygems: true
nexus_repos_rubygems_hosted:
- name: rubygems-hosted
nexus_repos_rubygems_proxy:
- name: rubygems-proxy
index_type: "proxy"
remote_url: "https://rubygems.org"
use_nexus_certificates_to_access_index: false
maximum_component_age: 1440
maximum_metadata_age: 1440
negative_cache_enabled: true
negative_cache_ttl: 1440
nexus_repos_rubygems_group:
- name: rubygems-group
member_repos:
- rubygems-hosted
- rubygems-proxy
# gitlfs. A nexus_config_gitlfs változtatásával hozzon létre gitlfs tárolót
nexus_config_gitlfs: true
nexus_repos_gitlfs_hosted:
- name: gitlfs-hosted
roles:
- { role: geerlingguy.java }
# Debian/Ubuntu csak
# - { role: geerlingguy.apache, apache_create_vhosts: no, apache_mods_enabled: ["proxy_http.load", "headers.load"], apache_remove_default_vhost: true, tags: ["geerlingguy.apache"] }
# RedHat/CentOS csak
- { role: geerlingguy.apache, apache_create_vhosts: no, apache_remove_default_vhost: true, tags: ["geerlingguy.apache"] }
- { role: ansible-thoteam.nexus3-oss, tags: ['ansible-thoteam.nexus3-oss'] }Képernyőképek:


Szerepváltozók
Role Variables
Alapértelmezett értékű változók (lásd: default/main.yml):
Általános változók
nexus_version: ''
nexus_timezone: 'UTC'Alapértelmezés szerint a szerep telepíti a legújabb elérhető Nexus verziót. A verzió helyesbítéséhez módosítsa a nexus_versionváltozót. Az elérhető verziókat itt találja: .
Ha újabb verzióra módosítja a verziót, a szerep megpróbálja frissíteni a telepített Nexus-t.
Ha régebbi Nexus verziót használ, mint a legújabb, győződjön meg arról, hogy nem használ olyan funkciókat, amelyek nem érhetők el a telepített kiadásban (például a yum repós tárolók elérhetők a Nexus 3.8.0-ánál nagyobb verziókban, a git lfs repo a Nexus 3.3.0-nál nagyobb verziókban, stb.)
nexus timezone — ez a Java időzóna neve, amely hasznos lehet az alább felsorolt cron kifejezésekkel a nexus_scheduled feladatokhoz.
A Nexus portja és kontextusútvonala
nexus_default_port: 8081
nexus_default_context_path: ' /'A Java kapcsolódás portja és kontextusútvonala. nexus_default_context_path tartalmaznia kell egy perjelet, amikor be van állítva, például: nexus_default_context_path: '/nexus/'.
Nexus fájlokhoz használt OS felhasználó és csoport
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'A fájlok tulajdonlására és a szolgáltatás indítására használt felhasználó és csoport a szerep által kerül létrehozásra, ha nem létezik.
nexus_os_user_home_dir: '/home/nexus'Engedélyezze a nexus felhasználó alapértelmezett otthoni könyvtárának módosítását
Nexus példányok könyvtárai
nexus_installation_dir: '/opt'
nexus_data_dir: '/var/nexus'
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"Nexus könyvtárak.
nexus_installation_dirtartalmazza a telepített végrehajtható fájlokatnexus_data_dirtartalmazza az összes konfigurációt, tárolót és letöltött artefaktumokat. A blobstore-ok egyedi útvonalainexus_data_dirbeállíthatók, lásd lentnexus_blobstores.nexus_tmp_dirtartalmazza az összes ideiglenes fájlt. Az alapértelmezett útvonal RedHat esetén átkerült/tmpa potenciális automatikus tisztítási problémák elkerülése érdekében. Lásd: #168.
A Nexus JVM memóriahasználatának beállítása
nexus_min_heap_size: "1200M"
nexus_max_heap_size: "{{ nexus_min_heap_size }}"
nexus_max_direct_memory: "2G"Ezek a Nexus alapértelmezett beállításai. Kérjük, ne módosítsa ezeket az értékeket Ha nem olvasta el a és nem érti, mit csinálnak.
Mint második figyelmeztetés, íme egy részlet a fent említett dokumentumból:
Nem ajánlott a JVM heap memória méretének növelése a javasolt értékek fölé a teljesítmény javítása érdekében. Ez valóban az ellenkező hatást érheti el, felesleges munkát okozva az operációs rendszer számára.
Adminisztrátori jelszó
nexus_admin_password: 'changeme'A 'admin' fiók jelszava a beállításhoz. Ez csak az alapértelmezett első telepítéskor működik. Kérjük, nézze meg a [Adminisztrátori jelszó megváltoztatása az első telepítés után](# change-admin-password-after-first-install) című részt, ha később szeretné megváltoztatni a szerepkör segítségével.
Fokozottan nem ajánlott a jelszó nyílt szövegként való tárolása a playbookban; inkább a [ansible-vault titkosítást] használja () (vagy beépített, vagy egy különálló fájl, amely például az include_vars segítségével lett betöltve)
Alapértelmezés szerint engedélyezett a névtelen hozzáférés
nexus_anonymous_access: falseAlapértelmezés szerint a névtelen hozzáférés le van tiltva. További információ a .
Nyilvános hoszt neve
nexus_public_hostname: 'nexus.vm'
nexus_public_scheme: httpsA teljes domain név és a séma (https vagy http), amelyen keresztül a Nexus példány elérhető lesz az ügyfelei számára.
API hozzáférés ehhez a szerepkörhöz
nexus_api_hostname: localhost
nexus_api_scheme: http
nexus_api_validate_certs: "{{ nexus_api_scheme == 'https' }}"
nexus_api_context_path: "{{ nexus_default_context_path }}"
nexus_api_port: "{{ nexus_default_port }}"Ezek a változók szabályozzák, hogyan csatlakozik a szerepkör a Nexus API-hoz a szolgáltatások nyújtásához.
Csak haladó felhasználók számára. Valószínűleg nem szeretné módosítani ezeket az alapértelmezett beállításokat.
Visszamenőleges proxy beállítása
httpd_setup_enable: false
httpd_server_name: "{{ nexus_public_hostname }}"
httpd_default_admin_email: "admin@example.com"
httpd_ssl_certificate_file: 'files/nexus.vm.crt'
httpd_ssl_certificate_key_file: 'files/nexus.vm.key'
# httpd_ssl_certificate_chain_file: "{{ httpd_ssl_certificate_file }}"
httpd_copy_ssl_files: trueTelepítse .
Ehhez az httpd telepítése szükséges. Megjegyzés: amikor a httpd_setup_enable értéke be van állítvaigaz, a nexus csatlakozik a 127.0.0.1:8081-hez, így nem lesz közvetlenül elérhető a 8081-es HTTP porton külső IP-címről.
Az alapértelmezett hoszt név a következő: nexus_public_hostname. Ha bármilyen okból különböző nevekre van szüksége, beállíthatja a httpd_server_name másik értékkel.
Késleltetett streaming replikációt is beállíthatunk, de van néhány csapda, amelyek a replikációs slotokkal, a forró tartalék visszajelzésével stb. kapcsolatosak. A WAL archívum lehetővé teszi, hogy elkerüljük ezeket. httpd_copy_ssl_files: true (alapértelmezett) a fent említett tanúsítványoknak létezniük kell a playbook mappájában, és fel lesznek másolva a szerverre, majd beállítva az apache-ban.
Ha már meglévő tanúsítványokat szeretne használni a szerveren, állítsa be a 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 nem kötelező, és üresen kell hagyni, ha nem szeretné beállítani a láncfájlt
httpd_default_admin_email: "admin@example.com"A rendszeradminisztrátor alapértelmezett e-mail címének beállítása
LDAP konfiguráció
Az LDAP kapcsolatok és a biztonsági terület alapértelmezés szerint le vannak tiltva
nexus_ldap_realm: false
ldap_connections: [], minden elem a következőképpen néz ki:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'My Company LDAP' # a kulcs a LDAP konfiguráció frissítéséhez
ldap_protocol: 'ldaps' # ldap vagy ldaps
ldap_hostname: 'ldap.mycompany.com'
ldap_port: 636
ldap_use_trust_store: false # Használja-e a tanúsítványokat a nexus bizalmi tárolójában
ldap_search_base: 'dc=mycompany,dc=net'
ldap_auth: 'none' # vagy egyszerű
ldap_auth_username: 'username' # ha az auth = egyszerű
ldap_auth_password: 'password' # ha az auth = egyszerű
ldap_user_base_dn: 'ou=users'
ldap_user_filter: '(cn=*)' # (opcionális)
ldap_user_object_class: 'inetOrgPerson'
ldap_user_id_attribute: 'uid'
ldap_user_real_name_attribute: 'cn'
ldap_user_email_attribute: 'mail'
ldap_user_subtree: false
ldap_map_groups_as_roles: false
ldap_group_base_dn: 'ou=groups'
ldap_group_object_class: 'posixGroup'
ldap_group_id_attribute: 'cn'
ldap_group_member_attribute: 'memberUid'
ldap_group_member_format: '${username}'
ldap_group_subtree: falseLDAP konfiguráció példa anonim hitelesítéshez (anonim kikötés), ez egyben "minimalista" konfiguráció:
nexus_ldap_realm: true
ldap_connection:
- ldap_name: 'Simplest LDAP config'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.mycompany.com'
ldap_search_base: 'dc=mycompany,dc=net'
ldap_port: 636
ldap_use_trust_store: false
ldap_user_id_attribute: 'uid'
ldap_user_real_name_attribute: 'cn'
ldap_user_email_attribute: 'mail'
ldap_user_object_class: 'inetOrgPerson'LDAP konfiguráció példa egyszerű hitelesítéshez (DSA fiók használatával):
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP config with DSA'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.mycompany.com'
ldap_port: 636
ldap_use_trust_store: false
ldap_auth: 'simple'
ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'
ldap_auth_password: "{{ vault_ldap_dsa_password }}" # jobb, ha a jelszavakat ansible vaultban tartja
ldap_search_base: 'dc=mycompany,dc=net'
ldap_user_base_dn: 'ou=users'
ldap_user_object_class: 'inetOrgPerson'
ldap_user_id_attribute: 'uid'
ldap_user_real_name_attribute: 'cn'
ldap_user_email_attribute: 'mail'
ldap_user_subtree: falseLDAP konfiguráció példa egyszerű hitelesítéshez (DSA fiók használatával) + csoportok szerepként kezelve:
nexus_ldap_realm: true
ldap_connections
- ldap_name: 'LDAP konfiguráció DSA-val'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.mycompany.com'
ldap_port: 636
ldap_use_trust_store: false
ldap_auth: 'simple'
ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'
ldap_auth_password: "{{ vault_ldap_dsa_password }}" # a jelszavakat jobb az ansible vault-ban tartani
ldap_search_base: 'dc=mycompany,dc=net'
ldap_user_base_dn: 'ou=users'
ldap_user_object_class: 'inetOrgPerson'
ldap_user_id_attribute: 'uid'
ldap_user_real_name_attribute: 'cn'
ldap_user_email_attribute: 'mail'
ldap_map_groups_as_roles: true
ldap_group_base_dn: 'ou=groups'
ldap_group_object_class: 'groupOfNames'
ldap_group_id_attribute: 'cn'
ldap_group_member_attribute: 'member'
ldap_group_member_format: 'uid=${username},ou=users,dc=mycompany,dc=net'
ldap_group_subtree: falsePélda LDAP konfigurációra egyszerű hitelesítéssel (DSA fiókot használva) + csoportok, dinamikusan hozzárendelve szerepként:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP konfiguráció DSA-val'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.mycompany.com'
ldap_port: 636
ldap_use_trust_store: false
ldap_auth: 'simple'
ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'
ldap_auth_password: "{{ vault_ldap_dsa_password }}" # a jelszavakat jobb az ansible vault-ban tartani
ldap_search_base: 'dc=mycompany,dc=net'
ldap_user_base_dn: 'ou=users'
ldap_user_object_class: 'inetOrgPerson'
ldap_user_id_attribute: 'uid'
ldap_user_real_name_attribute: 'cn'
ldap_user_email_attribute: 'mail'
ldap_map_groups_as_roles: true
ldap_map_groups_as_roles_type: 'dynamic'
ldap_user_memberof_attribute: 'memberOf'Jogosultságok
nexus_privileges:
- name: all-repos-read # kulcsként használva a jogosultság frissítéséhez
# type:
description: 'Olvasási & Böngészési hozzáférés minden repóhoz'
repository: '*'
actions: # lehet add, browse, create, delete, edit, read vagy * (mind)
- read
- browse
# pattern: pattern
# domain: domain
# script_name: névLista a beállításhoz. Kérjük, nézze meg a dokumentációt és a grafikus felhasználói felületet, hogy ellenőrizze, mely változók állíthatók be a jogosultság típusa szerint.
Ezek az elemek a következő alapértelmezett értékekkel egyesülnek:
_nexus_privilege_defaults:
type: repository-view
format: maven2
actions:
- readSzerepek (a Nexus-ban értendő)
nexus_roles:
- id: Developpers # hozzárendelhető egy LDAP csoport azonosítóhoz, szintén kulcsként használva a szerep frissítéséhez
name: developers
description: Minden fejlesztő
privileges:
- nx-search-read
- all-repos-read
roles: [] # hivatkozások más szerepnévhezLista a beállításhoz.
Felhasználók
nexus_local_users: []
# - username: jenkins # kulcsként használva a frissítéshez
# state: present # alapértelmezett érték, ha kihagyják, használja az 'absent'-t a felhasználó eltávolításához
# first_name: Jenkins
# last_name: CI
# email: support@company.com
# password: "s3cr3t"
# roles:
# - developers # szerep azonosítóHelyi (nem LDAP) felhasználók/fiókok listája a nexusban történő létrehozáshoz.
A lokális (nem LDAP) felhasználók/fiókok listája, amelyeket létre kell hozni a Nexusban.
nexus_ldap_users: []
# - felhasználónév: j.doe
# állapot: jelen
# szerepek:
# - "nx-admin"Az LDAP felhasználók/szerepek leképezése. Állapot nem létezik eltávolítja a szerepeket a meglévő felhasználóból, ha már létezik.
Az LDAP felhasználók nem törlődnek. A szerep beállítása egy nem létező felhasználónál hibához vezet.
Tartalomválasztók
nexus_content_selectors:
- név: docker-login
leírás: Jelölő a Docker bejelentkezési jogosultsághoz
keresési kifejezés: format=="docker" and path=~"/v2/"További információk a tartalomválasztóról: .
A tartalomválasztó használatához adj hozzá új jogosultságot a következővel: type: repository-content-selector és a megfelelőcontentSelector
- név: docker-login-jogosultság
típus: repository-content-selector
contentSelector: docker-login
leírás: 'Bejelentkezés a Docker registry-be'
repository: '*'
műveletek:
- olvasás
- böngészésBlobtárak és tárolók
nexus_delete_default_repos: falseTörölje a tárolókat a nexus telepítés kezdeti alapértelmezett konfigurációjából. Ez a lépés csak az első telepítéskor végrehajtott (amikor nexus_data_dir üresnek bizonyult).
A tárolók eltávolítása a Nexus alapértelmezett konfigurációs beállításaiból. Ez a lépés csak az első telepítés során hajtható végre (amikor nexus_data_dir üres).
nexus_delete_default_blobstore: falseTörölje az alapértelmezett blobtárat a nexus telepítés kezdeti alapértelmezett konfigurációjából. Ez csak akkor lehetséges, ha nexus_delete_default_repos: true és az összes konfigurált tároló (lásd alább) egyértelmű blob_store: custom. Ez a lépés csak az első telepítéskor hajtható végre (amikor nexus_data_dir üresnek bizonyult).
A blobtár (binaris artefaktumok) eltávolítása alapértelmezés szerint le van tiltva az alapértelmezett konfigurációból. A blobtár (binaris artefaktumok) eltávolításához tiltsa le nexus_delete_default_repos: true. Ez a lépés csak az első telepítésre vonatkozik (amikor nexus_data_dir üres).
nexus_blobstores: []
# példa blobtár elem:
# - név: külön tárolás
# típus: fájl
# útvonal: /mnt/custom/path
# - név: s3-blobtár
# típus: S3
# konfiguráció:
# bucket: s3-blobtár
# accessKeyId: "{{ VAULT_ENCRYPTED_KEY_ID }}"
# secretAccessKey: "{{ VAULT_ENCRYPTED_ACCESS_KEY }}"létrehozásához. A blobtár útvonala és a tároló blobtára nem frissíthető az első létrehozás után (bármilyen frissítés itt figyelmen kívül lesz hagyva a későbbi telepítéskor).
A blobtár S3-on történő konfigurálása kényelmi szolgáltatásként van biztosítva, és nem része az automatizált teszteknek, amelyeket a travison végzünk. Kérjük, vegye figyelembe, hogy az S3-on történő tárolás csak az AWS-en telepített példányokra ajánlott.
Létrehozás . A blobtárhoz és a tárolókhoz vezető útvonalak nem frissíthetők az első létrehozás után (bármilyen frissítés figyelmen kívül lesz hagyva a későbbi újratelepítéskor).
A BLOB-objektum tárolásának S3-on történő beállítása kényelmi szolgáltatásként kerül bemutatásra. Vegye figyelembe, hogy az S3-on való tárolás csak AWS-en telepített példányok számára ajánlott.
nexus_repos_maven_proxy:
- name: central
remote_url: 'https://repo1.maven.org/maven2/'
layout_policy: permissive
# maximum_component_age: -1
# maximum_metadata_age: 1440
# negative_cache_enabled: true
# negative_cache_ttl: 1440
- name: jboss
remote_url: 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
# maximum_component_age: -1
# maximum_metadata_age: 1440
# negative_cache_enabled: true
# negative_cache_ttl: 1440
# példa bejelentkezéssel/jelszóval:
# - name: secret-remote-repo
# remote_url: 'https://company.com/repo/secure/private/go/away'
# remote_username: 'username'
# remote_password: 'secret'
# # maximum_component_age: -1
# # maximum_metadata_age: 1440
# # negative_cache_enabled: true
# # negative_cache_ttl: 1440Fent a konfigurációs példa Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # "allow", "allow_once" vagy "deny" közül választhatóMaven konfiguráció. A negatív gyorsítótár beállítása opcionális, és az alapértelmezett értékek lesznek érvényben, ha elhagyják.
Konfiguráció Maven. A negatív gyorsítótár konfiguráció (-1) opcionális, és alapértelmezés szerint az előzőleg megadott értékeket használja, ha nem adták meg.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jbossKonfiguráció Maven.
Mindhárom tárolótípus az alábbi alapértelmezett értékekkel összevonva:
_nexus_repos_maven_defaults:
blob_store: default # Megjegyzés: nem frissíthető, miután a tároló létrejött
strict_content_validation: true
version_policy: release # release, snapshot vagy mixed
layout_policy: strict # strict vagy permissive
write_policy: allow_once # "allow", "allow_once" vagy "deny" közül választható
maximum_component_age: -1 # Nexus gui alapértelmezett. Csak proxyk esetén
maximum_metadata_age: 1440 # Nexus gui alapértelmezett. Csak proxyk esetén
negative_cache_enabled: true # Nexus gui alapértelmezett. Csak proxyk esetén
negative_cache_ttl: 1440 # Nexus gui alapértelmezett. Csak proxyk eseténDocker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS és yum tárolótípusok:
lásd defaults/main.yml ezekhez a lehetőségekhez:
A Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS és yum tárolók alapértelmezés szerint ki vannak kapcsolva:
Lásd defaults/main.yml ezekhez a lehetőségekhez:
nexus_config_pypi: false
nexus_config_docker: false
nexus_config_raw: false
nexus_config_rubygems: false
nexus_config_bower: false
nexus_config_npm: false
nexus_config_gitlfs: false
nexus_config_yum: falseKérjük, vegye figyelembe, hogy szükség lehet egyes biztonsági területek engedélyezésére, ha más tárolótípusokat is szeretne használni, nem csak a mavent. Ez alapértelmezés szerint false
nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false # szükséges a docker névtelen hozzáféréshezA Remote User Realm szintén engedélyezhető
nexus_rut_auth_realm: trueés a fejléc beállítható a megadott
nexus_rut_auth_header: "CUSTOM_HEADER"Ütemezett feladatok
nexus_scheduled_tasks: []
# # Példafeladat a blobstore tömörítésére:
# - név: compact-docker-blobstore
# cron: '0 0 22 * * ?'
# typeId: blobstore.compact
# task_alert_email: alerts@example.org # opcionális
# taskProperties:
# blobstoreName: {{ nexus_blob_names.docker.blob }} # minden feladatattribútumot szövegesen tárol a nexus
# # Példafeladat a maven snapshotok törlésére
# - név: Purge-maven-snapshots
# cron: '0 50 23 * * ?'
# typeId: repository.maven.remove-snapshots
# task_alert_email: alerts@example.org # opcionális
# taskProperties:
# repositoryName: "*" # * mindkét repository számára. Válts egy repository névre, ha csak egy adottat szeretnél
# minimumRetained: "2"
# snapshotRetentionDays: "2"
# gracePeriodInDays: "2"
# booleanTaskProperties:
# removeIfReleased: true
# # Példafeladat a nem használt docker manifeszt és képek törlésére
# - név: Purge unused docker manifests and images
# cron: '0 55 23 * * ?'
# typeId: "repository.docker.gc"
# task_alert_email: alerts@example.org # opcionális
# taskProperties:
# repositoryName: "*" # * mindkét repo számára. Válts repository névre, ha csak egy adottat szeretnél
# # Példafeladat a befejezetlen docker feltöltések törlésére
# - név: Purge incomplete docker uploads
# cron: '0 0 0 * * ?'
# typeId: "repository.docker.upload-purge"
# task_alert_email: alerts@example.org # opcionális
# taskProperties:
# age: "24" a beállításhoz. typeId és feladatspecifikustaskProperties/booleanTaskProperties kitalálható vagy:
- a Java típusok hierarchiájából
org.sonatype.nexus.scheduling.TaskDescriptorSupport - ellenőrizve a feladat létrehozási űrlapját az ön böngészőjében
- az AJAX kérések megtekintésével a böngészőben, a feladat kézi konfigurálásakor.
A feladat tulajdonságait a megfelelő yaml blokkban kell megadni a típusuknak megfelelően:
taskPropertiesminden szöveges tulajdonság esetén (pl. repository nevek, blob nevek, időtartamok…).booleanTaskPropertiesminden logikai tulajdonság esetén (pl. alapvetően a jelölőnégyzetek a nexus feladat létrehozó grafikus felhasználói felületében).
Biztonsági mentések
nexus_backup_configure: false
nexus_backup_cron: '0 0 21 * * ?' # Lásd a cron kifejezések definícióját a nexus feladat létrehozó GUI-jában
nexus_backup_dir: '\/var\/nexus-backup'
nexus_restore_log: '{{ nexus_backup_dir }}\/nexus-restore.log'
nexus_backup_rotate: false
nexus_backup_rotate_first: false
nexus_backup_keep_rotations: 4 # Alapértelmezés szerint 4 biztonsági mentés megtartása (jelenlegi + utolsó 3)A biztonsági mentés nem lesz beállítva, amíg nem vált át a nexus_backup_configure be. igaz.
Ebben az esetben a tervezett feladatsorozat be lesz állítva a Nexus futtatására
a megadott időközönként, nexus_backup_cron (alapértelmezés szerint naponta 21:00-kor).
Lásd [groovy sablon ezen feladathoz](templates / backup.groovy.j2) a részletes információkért.
Ez a tervezett feladat nem függ a többitől nexus_scheduled_tasks, amelyeket
a playbook-jában kell bejelentened.
Ha forgatni / törölni akarod a biztonsági mentéseket, állítsd be a nexus_backup_rotate: true és állítsa be a biztonsági mentések számát, amelyet meg szeretne tartani nexus_backup_keep_rotations (alapértelmezés szerint 4).
Rotáció használatakor, ha szeretne megtakarítani további lemezterületet a biztonsági mentési folyamat során,
beállíthatja nexus_backup_rotate_first: true. Ez előzetes rotációt/eltávolítást fog beállítani a biztonsági mentés előtt. Alapértelmezés szerint a rotáció a biztonsági mentés befejezése után történik. Kérjük, vegye figyelembe, hogy ebben az esetben a régi biztonsági mentések
eltávolításra kerülnek, mielőtt a jelenlegi biztonsági mentés elkészülne.
Helyreállítási eljárás
Futtassa a playbook-ot a következő paraméterrel: -e nexus_restore_point=
(például 2017-12-17-21-00-00 a 2017. december 17-én 21:00-kor
nexus eltávolítása
Figyelmeztetés: ez teljesen eltávolítja a jelenlegi adatokat. Feltétlenül készítsen biztonsági másolatot korábban, ha szükséges.
Használja a következő változót: nexus_purge, ha nulláról szeretne újraindítani és újratelepíteni a nexus példányt minden adat eltávolításával.
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=trueA jelszó megváltoztatása az adminisztrátor számára az első telepítés után
nexus_default_admin_password: 'admin123'Ezt nem szabad megváltoztatni a playbook-jában.Ez a változó a Nexus adminisztrátor alapértelmezett jelszavával tölti ki az első telepítéskor, és garantálja, hogy meg tudjuk változtatni az adminisztrátor jelszavát nexus_admin_password.
Ha meg szeretné változtatni az adminisztrátor jelszavát az első telepítés után, ideiglenesen megváltoztathatja régi jelszóra a parancssorból. A változtatás után nexus_admin_password a játék könyvében futtathatja:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPasswordTelegram csatorna a Nexus Sonatype-hoz:
Csak a regisztrált felhasználók vehetnek részt a szavazáson. , kérem.
Milyen artefaktum tárakat használ?
Sonatype Nexus ingyenes
Sonatype Nexus fizetős
Artifactory ingyenes
Artifactory fizetős
Harbor
Pulp
9 felhasználó szavazott. 3 felhasználó tartózkodott.
Forrás: habr.com
