Sonatype Nexus on integreeritud platvorm, mille abil saavad arendajad Java (Maven) sÔltuvusi, Docker'i pilte, Python'i, Ruby, NPM, Bower'i, RPM-pakette, gitlfs'i, Apt'i, Go'd, Nugetit vahepeal hoida ja hallata ning oma tarkvara jagada.
Miks on Sonatype Nexus vajalik?
- Privaatsete artefaktide hoidmiseks;
- Artefaktide vahemÀllu salvestamiseks, mis allalaaditakse internetist;
Sonatype Nexus'i pÔhiversiooniga toetatavad artefaktid:
- Java, Maven (jar)
- Docker
- Python (pip)
- Ruby (gem)
- NPM
- Bower
- Yum (rpm)
- gitlfs
- Raw
- Apt (deb)
- Go
- Nuget
Kogukonna toetatavad artefaktid:
- Composer
- Conan
- CPAN
- ELPA
- Helm
- P2
- R
Sonatype Nexus'i paigaldamine kasutades
NÔuded
- Lugege ansible'i kasutamisest internetis.
- Installige ansible
pip install ansibletöölauale, kus playbook kÀivitatakse. - Installige töölauale, kus playbook kÀivitatakse.
- Installige töölauale, kus playbook kÀivitatakse.
- See roll on testitud CentOS 7, Ubuntu Xenial (16.04) ja Bionic (18.04), Debian Jessie ja Stretch'il
jmespathraamatukogu tuleb installida töölauale, kus playbook kÀivitatakse. Paigaldamiseks kÀivitagesudo pip install -r requirements.txt- Salvestage playbooki fail (nÀide allpool) failiks nexus.yml
- KĂ€ivitage nexus'i paigaldamine
ansible-playbook -i host nexus.yml
NĂ€ide ansible-playbook'ist nexus'i paigaldamiseks ilma LDAP'ita Maven (java), Docker'i, Python'i, Ruby, NPM, Bower'i, RPM'i ja gitlfs'i hoidlate jaoks.
---
- 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: 'Lugege ja sirvige pÀÀsu kÔikidele repodele'
repository: '*'
actions:
- read
- browse
- name: company-project-deploy
description: 'Kohandamised company-project'
repository: company-project
actions:
- add
- edit
nexus_roles:
- id: Developpers # kaardistub LDAP grupile
name: developers
description: KÔik arendajad
privileges:
- nx-search-read
- all-repos-read
- company-project-deploy
roles: []
nexus_local_users:
- username: jenkins # kasutatud uuendamiseks
first_name: Jenkins
last_name: CI
email: support@company.com
password: "s3cr3t"
roles:
- Developpers # siin on rolli ID
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. Muutke nexus_config_yum tÔeks, et luua yum-repository
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. Muutke nexus_config_npm tÔeks, et luua npm-repository
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. Muutke nexus_config_docker tÔeks, et luua docker-repository
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. Muutke nexus_config_bower tÔeks, et luua bower-repository
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. Muutke nexus_config_pypi tÔeks, et luua pypi-repository
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. Muutke nexus_config_rubygems tÔeks, et luua rubygems-repository
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. Muutke nexus_config_gitlfs tÔeks, et luua gitlfs-repository
nexus_config_gitlfs: true
nexus_repos_gitlfs_hosted:
- name: gitlfs-hosted
roles:
- { role: geerlingguy.java }
# Debian/Ubuntu ainult
# - { 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 ainult
- { 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'] }Ekraanipildid:


Muutujad rollid
Rolli muutujad
Vaikese vÀÀrtusega muutujad (vt. default/main.yml):
Ăldised muutujad
nexus_version: ''
nexus_timezone: 'UTC'Vaikimisi roll seab viimase saadaval oleva Nexus versiooni. Saate versiooni parandada, muutes muutuja nexus_version. Vaadake saadaval olevaid versioone aadressil .
Kui muudate versiooni uuemaks, proovib roll teie installitud Nexusit vÀrskendada.
Kui kasutate vanemat Nexus versiooni, kui viimane, peate veenduma, et te ei kasuta funktsioone, mis pole installitud versioonis saadaval (nt yum repode majutamine on saadaval Nexus versioonis suurem kui 3.8.0, git lfs repo Nexus versioonis suurem kui 3.3.0 jne.)
nexus timezone on Java ajavööndi nimi, mis vÔib olla kasulik koos allpool toodud cron avaldistega nexus_scheduled tasks jaoks.
Nexuse port ja konteksti tee
nexus_default_port: 8081
nexus_default_context_path: ' / 'Port ja konteksti tee Java ĂŒhenduse protsessile. nexus_default_context_path peab sisaldama kaldkirja, kui see on seadistatud, nĂ€iteks: nexus_default_context_path: ' /nexus/ '.
Nexuse OS kasutaja ja grupp
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'Kasutaja ja grupp, mida kasutatakse Nexuse failide omamise ja teenuse kÀitamise jaoks, luuakse rolliga, kui neid pole.
nexus_os_user_home_dir: ' /home/nexus 'Lubage muuta vaikimisi kodukaust Nexus kasutajale
Nexuse instantside kataloogid
nexus_installation_dir: ' /opt '
nexus_data_dir: ' /var/nexus '
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary(' /var/nexus-tmp ', ' /tmp/nexus ') }}"Nexuse kataloogid.
nexus_installation_dirsisaldab paigaldatud kĂ€ivitatavaid failenexus_data_dirsisaldab kogu konfiguratsiooni, hoidlaid ja ĂŒles laaditud artefakte. Kohandatud blobstoreâi teednexus_data_dirvĂ”ivad olla seadistatud, vt allpoolnexus_blobstores.nexus_tmp_dirsisaldab kĂ”iki ajutisi faile. Vaikimisi tee RedHat jaoks viidi ĂŒle/tmppotentsiaalsete probleemide ĂŒletamiseks automaatsete puhastusprotseduuride korral. Vaadake #168.
Nexuse JVM mÀlu kasutuse seadistamine
nexus_min_heap_size: "1200M"
nexus_max_heap_size: "{{ nexus_min_heap_size }}"
nexus_max_direct_memory: "2G"Need on Nexuse vaikeseadistused. Palun Àrge muutke neid vÀÀrtusi kui te pole lugenud ja ei mÔista, mida need teevad.
Teise hoiatuse korras on siin vÀljavÔte eespool mainitud dokumendist:
JVM heap'i mĂ€lu suurendamine ĂŒle soovitatavate vÀÀrtuste töötamise parandamiseks ei ole soovitatav. See vĂ”ib tegelikult saavutada vastupidise efekti, pĂ”hjustades operatsioonisĂŒsteemi liigset tööd.
Administraatori parool
nexus_admin_password: 'changeme'Administraatori konto âadminâ parool seadistamiseks. See kehtib ainult esmakordsel vaikeseadistusel.. Palun vaadake [Muuda administraatori parooli pĂ€rast esimest installimist](# change-admin-password-after-first-install), kui soovite seda hiljem muuta rolli kaudu.
Soovitame tungivalt mitte hoida oma parooli avatud tekstina playbook'is, vaid kasutada [ansible-vault'i krĂŒpteerimist]() (kas sisse ehitatud vĂ”i eraldi failis, mille laadite nĂ€iteks include_vars'i abil)
AnonĂŒĂŒmne juurdepÀÀs vaikevaikesena
nexus_anonymous_access: falseVaikeanonĂŒĂŒmi juurdepÀÀs on keelatud. Lisateave anonĂŒĂŒmse juurdepÀÀsu kohta: .
Avalik hostinimi
nexus_public_hostname: 'nexus.vm'
nexus_public_scheme: httpsTÀielik domeeninimi ja skeem (https vÔi http), mille kaudu Nexus'i eksemplar on klientide jaoks kergesti kÀttesaadav.
API juurdepÀÀs selle rolli jaoks
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 }}"Need muutujad kontrollivad, kuidas roll ĂŒhendub Nexus API-ga teenuse osutamiseks.
Ainult edasijÔudnud kasutajatele. TÔenÀoliselt ei soovi te neid vaikehÀÀlestusi muuta.
Tagasipöördeproksi seadistamine
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: trueInstallige .
Selleks peab olema installitud httpd. MÀrkus: kui httpd_setup_enable on seatudtrue, nexus suhtub 127.0.0.1:8081, seega ei on otseselt kÀtte saadav HTTP-porti 8081 kaudu vÀlisest IP-aadressist.
Vaikeolekuna kasutatav hostinimi on nexus_public_hostname. Kui vajate erinevaid nimesid mÔnede pÔhjuste tÔttu, saate seadistada httpd_server_name teise vÀÀrtusega.
A httpd_copy_ssl_files: true (vaikimisi) ĂŒlaltoodud sertifikaadid peavad olema olemas teie playbook'i kataloogis ja need kopeeritakse serverisse ning konfigureeritakse apache'is.
Kui soovite kasutada olemasolevaid sertifikaate serveris, seadistage httpd_copy_ssl_files: false ja esitage jÀrgmised muutujad:
# 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 on ei ole kohustuslik ja see tuleks jÀtta seadistamata, kui te ei soovi ketifaili seadistada
httpd_default_admin_email: "admin@example.com"Seadista vaikimisi administraatori e-posti aadress
LDAP konfiguratsioon
LDAP ĂŒhendused ja turvaala on vaikimisi vĂ€lja lĂŒlitatud
nexus_ldap_realm: false
ldap_connections: [], iga element nÀeb vÀlja jÀrgmine:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'Minu EttevÔtte LDAP' # kasutatakse vÔtmena ldap konfiguratsiooni uuendamiseks
ldap_protocol: 'ldaps' # ldap vÔi ldaps
ldap_hostname: 'ldap.minuettevÔte.com'
ldap_port: 636
ldap_use_trust_store: false # Kas kasutada sertifikaate nexus usalduspoes
ldap_search_base: 'dc=minuettevÔte,dc=net'
ldap_auth: 'none' # vÔi lihtne
ldap_auth_username: 'kasutajanimi' # kui auth = lihtne
ldap_auth_password: 'parool' # kui auth = lihtne
ldap_user_base_dn: 'ou=users'
ldap_user_filter: '(cn=*)' # (valikuline)
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: falseNĂ€idis LDAP konfiguratsioon anonĂŒĂŒmseks autentimiseks (anonĂŒĂŒmne sidumine), see on samuti "minimaalne" konfiguratsioon:
nexus_ldap_realm: true
ldap_connection:
- ldap_name: 'Lihtsaim LDAP konfiguratsioon'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.minuettevÔte.com'
ldap_search_base: 'dc=minuettevÔte,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'NĂ€idis LDAP konfiguratsioon lihtsaks autentimiseks (kasutades DSA kontot):
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP konfiguratsioon DSA-ga'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.minuetvÔte.com'
ldap_port: 636
ldap_use_trust_store: false
ldap_auth: 'simple'
ldap_auth_username: 'cn=mynexus,ou=dsa,dc=minuettevÔte,dc=net'
ldap_auth_password: "{{ vault_ldap_dsa_password }}" # parem hoida paroolid ansible vaultis
ldap_search_base: 'dc=minuettevÔte,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: falseNĂ€idis LDAP konfiguratsioon lihtsaks autentimiseks (kasutades DSA kontot) + rĂŒhmad, mis on seotud rollidega:
nexus_ldap_realm: true
ldap_connections
- ldap_name: 'LDAP seadme 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 }}" # parem hoida paroolid ansible varjatud
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: falseLDAP konfiguratsiooni nĂ€ide lihtsaks autentimiseks (kasutades DSA kontot) + grupid, mis on dĂŒnaamiliselt kaardistatud rollideks:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP seadme 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 }}" # parem hoida paroolid ansible varjatud
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'Privileegid
nexus_privileges:
- name: all-repos-read # kasutatud privileegi uuendamiseks
# type: <ĂŒks rakendusest, repository-admin, repository-content-selector, repository-view, script vĂ”i wildcard>
description: 'Lugemis- ja sirvimisÔigus kÔikidele repos'
repository: '*'
actions: # vÔib olla add, browse, create, delete, edit, read vÔi * (kÔik)
- read
- browse
# pattern: patterns
# domain: domeen
# script_name: nimiLoend seadistamiseks. Vaadake dokumentatsiooni ja graafilist kasutajaliidest, et teada saada, millised muutujad peavad olema seadistatud vastavalt privileegi tĂŒĂŒbile.
Need elemendid on ĂŒhendatud jĂ€rgmiste vaikevÀÀrtustega:
_nexus_privilege_defaults:
type: repository-view
format: maven2
actions:
- readRollid (Nexus sees mÔeldud)
nexus_roles:
- id: Development # vÔib kaardistada LDAP grupi ID-le, samuti kasutatakse seda rolli uuendamise vÔtmena
name: arendajad
description: KÔik arendajad
privileges:
- nx-search-read
- all-repos-read
roles: [] # viidatud teiste rollide nimedeleLoend seadistamiseks.
Kasutajad
nexus_local_users: []
# - kasutajanimi: jenkins # kasutatud vÔtmena uuendamiseks
# state: present # vaikevÀÀrtus, kui jÀetakse vahele, kasuta 'absent', et eemaldada kasutaja
# eesnimi: Jenkins
# perekonnanimi: CI
# email: support@company.com
# parool: "s3cr3t"
# rollid:
# - arendajad # rolli IDKohalik (mitte-LDAP) kasutajate/kontode loend nexus'e loomiseks.
Nexuse loomade (mitte LDAP) kasutajate/konto loendi loomine.
nexus_ldap_users: []
# - username: j.doe
# state: present
# roles:
# - "nx-admin"LDAP kasutajate/rollide kaardistamine. Seisund absent eemaldab rollid olemasolevalt kasutajalt, kui ta juba eksisteerib.
LDAP kasutajaid ei eemaldata. Rolli mÀÀramine mitteeksisteerivale kasutajale toob kaasa vea.
Sisu valikud
nexus_content_selectors:
- name: docker-login
description: Docker sisselogimise Ôiguse valija
search_expression: format=="docker" and path=~"/v2/"Lisainformatsiooni sisu valija kohta leiate .
Sisu valija kasutamiseks lisage uus privileeg koos type: repository-content-selector ja vastavacontentSelector
- name: docker-login-privilege
type: repository-content-selector
contentSelector: docker-login
description: 'Sisselogimine Docker registreerimisse'
repository: '*'
actions:
- read
- browseBlobs ja repod
nexus_delete_default_repos: falseKustuta repod Nexus installi algsest vaikimisi konfiguratsioonist. See samm tĂ€idetakse ainult esmakordsel installimisel (kui nexus_data_dir on tuvastatud tĂŒhi).
Repode eemaldamine Nexus vaikimisi konfiguratsioonist. See samm tĂ€idetakse ainult esmakordsel installimisel (kui nexus_data_dir on tĂŒhi).
nexus_delete_default_blobstore: falseKustuta vaikimisi blobide salvestus Nexus installi algsest vaikimisi konfiguratsioonist. Seda saab teha ainult juhul kui nexus_delete_default_repos: true ja kĂ”ik konfigureeritud repod (vt allpool) on selgelt blob_store: custom. See samm tĂ€idetakse ainult esmakordsel installimisel (kui nexus_data_dir on tuvastatud tĂŒhi).
Blobide (binaarartefaktide) salvestuse eemaldamine on vaikimisi keelatud algsest konfiguratsioonist. Blobide salvestuse eemaldamiseks keelake nexus_delete_default_repos: true. See samm tĂ€idetakse ainult esmakordsel installimisel (kui nexus_data_dir on tĂŒhi).
nexus_blobstores: []
# nÀidis blobide salvestuse element :
# - name: separate-storage
# type: file
# path: /mnt/custom/path
# - name: s3-blobstore
# type: S3
# config:
# bucket: s3-blobstore
# accessKeyId: "{{ VAULT_ENCRYPTED_KEY_ID }}"
# secretAccessKey: "{{ VAULT_ENCRYPTED_ACCESS_KEY }}"loo. Blobide salvestuse teed ja repode blobide salvestused ei saa pÀrast esmase loomise lÔpetamist vÀrskendada (kÔik vÀrskendused siinkohal ignoreeritakse korduvkasutamisel).
Blobide salvestuse konfigureerimine S3-l pakutakse mugavuse huvides ja ei kuulu automaatsetesse testidesse, mida me Travis'il jooksutame. Palun pidage meeles, et S3-l salvestamine on soovitatav ainult AWS'is juurutatud instantside jaoks.
Loomine . Blobide ja repode salvestuste teed ei saa pÀrast esmase loomise lÔpetamist vÀrskendada (kÔik vÀrskendused siinkohal ignoreeritakse korduvkasutamisel).
Blobide salvestuse konfigureerimine S3-l pakutakse mugavuse huvides. Pange tÀhele, et S3-l salvestamine on soovitatav ainult AWS'is juurutatud instantside jaoks.
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
# example with a login/password :
# - 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: 1440Ălalolev on konfigureerimise nĂ€ide Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # ĂŒks "allow", "allow_once" vĂ”i "deny"Maven konfiguratsioon. Negatiivne vahemĂ€lu konfiguratsioon on valikuline ja vaikimisi kasutatakse ĂŒlaltoodud vÀÀrtusi, kui see on vahele jĂ€etud.
Konfiguratsioon Maven. Negatiivse vahemĂ€lu konfiguratsioon (-1) on valikuline ja vaikimisi kasutatakse ĂŒlaltoodud vÀÀrtusi, kui see ei ole mÀÀratud.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jbossKonfiguratsioon Maven.
KĂ”ik kolm tĂŒĂŒpi hoidlaid ĂŒhendatakse jĂ€rgmiste vaikimisi vÀÀrtustega:
_nexus_repos_maven_defaults:
blob_store: default # MÀrkus: seda ei saa pÀrast hoidla loomist vÀrskendada
strict_content_validation: true
version_policy: release # release, snapshot vÔi mixed
layout_policy: strict # strict vÔi permissive
write_policy: allow_once # ĂŒks "allow", "allow_once" vĂ”i "deny"
maksimum_component_age: -1 # Nexus gui vaikeseade. Ainult proksi
maximum_metadata_age: 1440 # Nexus gui vaikeseade. Ainult proksi
negative_cache_enabled: true # Nexus gui vaikeseade. Ainult proksi
negative_cache_ttl: 1440 # Nexus gui vaikeseade.Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ja yum hoidlatĂŒĂŒbid:
vaata defaults/main.yml selle valikute jaoks:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ja yum hoidlad on vaikimisi vĂ€lja lĂŒlitatud:
Vaata defaults/main.yml selle valikute jaoks:
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: falseMĂ€rkus: vĂ”ib osutuda vajalikuks aktiveerida teatud turvapiirkonnad, kui soovite kasutada muid hoidlatĂŒĂŒpe peale maven. Vaikimisi on vale
nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false # vajalik docker anonĂŒĂŒmseks juurdepÀÀsuksKaugkasutaja domeen saab ka aktiveerida
nexus_rut_auth_realm: trueja pealkirja saab seadistada mÀÀrates
nexus_rut_auth_header: "CUSTOM_HEADER"Planeeritud ĂŒlesanded
nexus_scheduled_tasks: []
# # NĂ€ide ĂŒlesandest blobstore'i tihendamiseks:
# - nimi: compact-docker-blobstore
# cron: '0 0 22 * * ?'
# typeId: blobstore.compact
# task_alert_email: alerts@example.org # valikuline
# taskProperties:
# blobstoreName: {{ nexus_blob_names.docker.blob }} # kĂ”ik ĂŒlesande atribuudid on nexus-es salvestatud stringidena
# # NĂ€ide ĂŒlesandest maven'i seeriate puhastamiseks
# - nimi: Purge-maven-snapshots
# cron: '0 50 23 * * ?'
# typeId: repository.maven.remove-snapshots
# task_alert_email: alerts@example.org # valikuline
# taskProperties:
# repositoryName: "*" # * kĂ”igi hoidlate jaoks. Muuda kindlaks hoidla nime, kui soovid ainult ĂŒhte
# minimumRetained: "2"
# snapshotRetentionDays: "2"
# gracePeriodInDays: "2"
# booleanTaskProperties:
# removeIfReleased: true
# # NĂ€ide ĂŒlesandest mittevajalike docker'i manifestide ja piltide puhastamiseks
# - nimi: Purge unused docker manifests and images
# cron: '0 55 23 * * ?'
# typeId: "repository.docker.gc"
# task_alert_email: alerts@example.org # valikuline
# taskProperties:
# repositoryName: "*" # * kĂ”igi hoidlate jaoks. Muuda kindlaks hoidla nime, kui soovid ainult ĂŒhte
# # NĂ€ide ĂŒlesandest lĂ”petamata docker'i ĂŒles laadimise puhastamiseks
# - nimi: Purge incomplete docker uploads
# cron: '0 0 0 * * ?'
# typeId: "repository.docker.upload-purge"
# task_alert_email: alerts@example.org # valikuline
# taskProperties:
# age: "24" seadistamiseks. typeId ja ĂŒlesande spetsiifilisedtaskProperties/booleanTaskProperties vĂ”ib arvata vĂ”i:
- Java tĂŒĂŒpi hierarhiast
org.sonatype.nexus.scheduling.TaskDescriptorSupport - kontrollides HTML-i ĂŒlesande loomise vormi teie brauseris
- vaadates brauseris AJAX-pĂ€ringute jĂ€lgi kĂ€sitsi ĂŒlesande seadistamisel.
Ălesande omadused peavad olema deklareeritud Ă”igesse YAML-blokki sĂ”ltuvalt nende tĂŒĂŒbist:
taskPropertieskĂ”igi stringi omaduste jaoks (st hoidlate nimed, blobstore nimed, ajavahemikudâŠ).booleanTaskPropertieskĂ”igi loogiliste omaduste jaoks (st peamiselt mĂ€rkeruudud nexus'e ĂŒlesande loomise graafilises liideses).
Varukoopiad
nexus_backup_configure: false
nexus_backup_cron: '0 0 21 * * ?' # Vaata cron'i vĂ€ljendite mÀÀratlust nexus'i ĂŒlesande loomise GUI-s
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 # Hoia vaikimisi 4 varukoopia rotatsiooni (praegune + viimased 3)Varundamine ei ole seadistatud, kuni te ei lĂŒlita sisse nexus_backup_configure ja true.
Sel juhul on planeeritud skriptiĂŒlesanne seadistatud kĂ€ivituma Nexus's
vahemikus, mis on mÀÀratud nexus_backup_cron (vaikimisi iga pÀev kell 21:00).
Vaata [groovy'i mall sellele ĂŒlesandele](templates / backup.groovy.j2) ĂŒksikasjaliku teabe saamiseks.
See planeeritud ĂŒlesanne ei sĂ”ltu teistest nexus_scheduled_tasks, mida sa
oma playbook'is deklareerivad.
Kui soovite rotatsiooni/varukoopiate kustutamist, seadke nexus_backup_rotate: true ja seadistage varukoopiate arv, mida soovite hoida, kasutades nexus_backup_keep_rotations (vaikimisi 4).
Rotaatsiooni kasutamisel, kui soovite varukoopia protsessi ajal kokku hoida lisanduvat kettaruumi,
Saate seadistada nexus_backup_rotate_first: true. See seadistab eelarvitamise/kustutamise enne varukoopia tegemist. Vaikimisi toimub rotatsioon pÀrast varukoopia loomist. Pange tÀhele, et sel juhul kustutatakse vanad varukoopiad
enne, kui praegune varukoopia tehakse.
Taasteprotseduur
KĂ€itage playbook'i parameetriga -e nexus_restore_point=
(nt 2017-12-17-21-00-00 17. detsembril 2017 kell 21:00
Nexus kustutamine
Hoiatus: see eemaldab tÀielikult praegused andmed. Soovitav on eelnevalt varukoopia teha, kui see on vajalik
Kasutage muutujat nexus_purge, kui soovite nullist alustada ja uuesti Nexus eksemplari installida, kustutades kÔik andmed.
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=trueMuuda administraatori parooli pÀrast esmakordset installimist
nexus_default_admin_password: 'admin123'Seda ei tohiks teie playbook'is muuta. See muutuja tÀidetakse Nexus'i vaikimisi administraatori parooliga esmakordsel installimisel ja tagab, et me saame muuta administraatori parooli nexus_admin_password.
Kui soovite muuta administraatori parooli pÀrast esmakordset installimist, saate selle ajutiselt muuta vanaks parooliks kÀsurealt. PÀrast muutmist nexus_admin_password teie mÀngu raamatus saate kÀivitada:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPasswordTelegraafikanal Nexus Sonatype:
Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. , palun.
Milliseid artefaktide ladustamisi te kasutate?
Sonatype Nexus tasuta
Sonatype Nexus tasuline
Artifactory tasuta
Artifactory tasuline
Harbor
Pulp
HÀÀletas 9 kasutajat. 3 kasutajat pidurdusid.
Allikas: habr.com
