Sonatype Nexus on integreeritud platvorm, mille abil arendajad saavad Java (Maven), Docker'i piltide, Python'i, Ruby, NPM, Bower, RPM-pakettide, gitlfs, Apt, Go, Nuget sõltuvusi vahetada, salvestada ja hallata ning oma tarkvara levitada.
Miks on Sonatype Nexus vajalik?
- Privaatsete artefaktide salvestamiseks;
- Interneti kaudu allalaaditavate artefaktide vahemäluks;
Sonatype Nexus'i põhiversioonis toetatud artefaktid:
- Java, Maven (jar)
- Docker
- Python (pip)
- Ruby (gem)
- NPM
- Bower
- Yum (rpm)
- gitlfs
- Raw
- Apt (deb)
- Go
- Nuget
Kogukonna toetatud artefaktid:
- Composer
- Conan
- CPAN
- ELPA
- Helm
- P2
- R
Sonatype Nexus'i installimine kasutades
Nõuded
- Lugege internetist ansible'i kasutamise kohta.
- Installige ansible
pip install ansibletööjaamas, kus playbook'i käivitatakse. - Installige tööjaamas, kus playbook'i käivitatakse.
- Installige tööjaamas, kus playbook'i käivitatakse.
- See roll on testitud CentOS 7, Ubuntu Xenial (16.04) ja Bionic (18.04), Debian Jessie ja Stretch'i peal.
jmespathraamatukogud peavad olema installitud tööjaamas, kus playbook'i käivitatakse. Installimiseks käivitagesudo pip install -r requirements.txt- Salvestage playbook'i faili (näide all) nexus.yml.
- Käivitage nexus'i installimine
ansible-playbook -i host nexus.yml
Näidis ansible-playbook'i nexus'e installimiseks ilma LDAP'ta, sealhulgas Maven (java), Docker, Python, Ruby, NPM, Bower, RPM ja gitlfs hoidlad.
---
- 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: 'Lugemis- ja sirvimisõigus kõigile hoidlatele'
repository: '*'
actions:
- read
- browse
- name: company-project-deploy
description: 'Käivitus ettevõtte projekti'
repository: company-project
actions:
- add
- edit
nexus_roles:
- id: Developpers # seondub LDAP grupiga
name: developers
description: Kõik arendajad
privileges:
- nx-search-read
- all-repos-read
- company-project-deploy
roles: []
nexus_local_users:
- username: jenkins # kasutatav võtmena värskendamiseks
first_name: Jenkins
last_name: CI
email: support@company.com
password: "s3cr3t"
roles:
- Developpers # rolli ID siin
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. Muuda nexus_config_yum tõeliseks, et luua yum hoidla
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. Muuda nexus_config_npm tõeliseks, et luua npm hoidla
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. Muuda nexus_config_docker tõeliseks, et luua docker hoidla
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. Muuda nexus_config_bower tõeliseks, et luua bower hoidla
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. Muuda nexus_config_pypi tõeliseks, et luua pypi hoidla
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. Muuda nexus_config_rubygems tõeliseks, et luua rubygems hoidla
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. Muuda nexus_config_gitlfs tõeliseks, et luua gitlfs hoidla
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'] }Kuvapildid:


Muutujad rolli
Rolli muutujad
Vaikimisi väärtustega muutujaid (vt. default/main.yml):
Üldised muutujad
nexus_version: ''
nexus_timezone: 'UTC'Vaikimisi seadistab roll viimasena saadaval oleva Nexus versiooni. Versiooni saate parandada, muuta muutuja nexus_version. Saate tutvuda saadaval olevate versioonidega .
Kui muudate versiooni uuemaks, proovib roll teie paigaldatud Nexus't uuendada.
Kui kasutate vanemat Nexus versiooni kui viimane, peate veenduma, et ei kasuta funktsioone, mis pole paigaldatud väljaandes saadaval (näiteks yum repo majutamine on saadaval Nexus versioonile, mis on suurem kui 3.8.0, git lfs repo Nexus versioonile, mis on suurem kui 3.3.0 jne.)
nexus timezone on Java ajatsooni nimi, mis võib olla kasulik koos allpool toodud cron väljenditega nexus_scheduled ülesannete jaoks.
Nexuse port ja konteksti tee
nexus_default_port: 8081
nexus_default_context_path: '/'Java ühendusprotsessi port ja konteksti tee. nexus_default_context_path peab sisaldama kaldkriipsu, kui see on määratud, 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 Nexus-failide omamiseks ja teenuse käivitamiseks, luuakse rolli poolt, kui seda pole.
nexus_os_user_home_dir: '/home/nexus'Lubage muuta nexus'i kasutaja vaikimisi kodukausta.
Nexus'e eksemplaride kataloogid.
nexus_installation_dir: '/opt'
nexus_data_dir: '/var/nexus'
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"Nexus'e kataloogid.
nexus_installation_dirkcontains the installed executables.nexus_data_dirkcontains all configuration, repositories, and uploaded artifacts. Custom blobstore pathsnexus_data_dirvõivad olla konfigureeritud, vaadake allpool.nexus_blobstores.nexus_tmp_dirkcontains all temporary files. Redhati vaikimisi tee on ümber paigutatud, et vältida/tmpvõimalikke probleeme automaatsete puhastamisprotseduuridega. Vaadake #168.
Nexus JVM mälu seadistamine.
nexus_min_heap_size: "1200M"
nexus_max_heap_size: "{{ nexus_min_heap_size }}"
nexus_max_direct_memory: "2G"Need on Nexus'e vaikeseadistused. Palun ärge muutke neid väärtusi. Kui te ei ole lugenud ja ei mõista, mida need teevad.
Teise hoiatusega on siin väljavõte eespool nimetatud dokumendist:
JVM heap mälu suurendamine rohkem kui soovitatud väärtused ei ole soovitatav, kuna see võib tõeliselt põhjustada vastupidist efekti, koormates operatsioonisüsteemi üle.
Administraatori parool
nexus_admin_password: 'changeme'Seadistamiseks 'admin' konto parool. See töötab ainult vaikimisi esmakordsel installimisel. Palun vaadake [Muuda administraatori parooli pärast esmakordset installimist](# change-admin-password-after-first-install), kui soovite seda hiljem muuta.
Ärge salvestage oma parooli avatud tekstina playbook'is, vaid kasutage [ansible-vault krüpteerimist] () (kas integreeritud või eraldi fail, mis on alla laaditud näiteks include_vars abil)
Vaikimisi anonüümne juurdepääs
nexus_anonymous_access: falseVaikimisi anonüümne juurdepääs on keelatud. Lisainfot 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 instants on klientide poolt ligipääsetav.
API juurdepääs sellele rollile
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 jäävad mõisted kontrollivad, kuidas roll ühendatakse Nexus API-ga teenuse osutamiseks.
Ainult edasijõudnud kasutajatele. Tõenäoliselt ei soovi te neid vaikeseadeid muuta.
Tagasiühenduse konfigureerimine
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 on vajalik httpd installimine. Märkus: kui httpd_setup_enable on määratudtrue, nexus ühendab 127.0.0.1:8081, seega ei ole otseselt ligipääsetav HTTP-pordilt 8081 välisest IP-aadressist.
Vaikimisi kasutatav hostinimi on nexus_public_hostname. Kui teil on mingil põhjusel vaja erinevaid nimesid, saate määrata httpd_server_name teise väärtusega.
C httpd_copy_ssl_files: true (vaikimisi) ülaltoodud sertifikaadid peaksid olema olemas teie playbook-kaustas ja need kopeeritakse serverisse ning seadistatakse apache's.
Kui soovite olemasolevaid sertifikaate serveris kasutada, seadistage httpd_copy_ssl_files: false ja edastage 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 valikuline ja tuleks jätta seadistamata, kui te ei soovi ketifaili seadistada
httpd_default_admin_email: "admin@example.com"Seadistage vaikimisi administraatori e-posti aadress
LDAP konfiguratsioon
LDAP ühendused ja vaikimisi turvaala on välja lülitatud
nexus_ldap_realm: false
ldap_connections: [], iga element on järgmine:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'Minu Ettevõtte LDAP' # kasutatakse võtmena ldap konfigureerimise uuendamiseks
ldap_protocol: 'ldaps' # ldap või ldaps
ldap_hostname: 'ldap.minuettevõtte.com'
ldap_port: 636
ldap_use_trust_store: false # Kas kasutada sertifikaate nexus'e usalduspoes
ldap_search_base: 'dc=minuettevõtte,dc=net'
ldap_auth: 'none' # või simple
ldap_auth_username: 'kasutajanimi' # kui auth = simple
ldap_auth_password: 'parool' # kui auth = simple
ldap_user_base_dn: 'ou=kasutajad'
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=rühmad'
ldap_group_object_class: 'posixGroup'
ldap_group_id_attribute: 'cn'
ldap_group_member_attribute: 'memberUid'
ldap_group_member_format: '${kasutajanimi}'
ldap_group_subtree: falseLDAP konfigureerimise näide anonüümseks autentimiseks (anonüümne seondumine), see on samuti "minimaalne" konfigureerimine:
nexus_ldap_realm: true
ldap_connection:
- ldap_name: 'Lihtsaim LDAP konfigureerimine'
ldap_protocol: 'ldaps'
ldap_hostname: 'annuaire.minuettevõtte.com'
ldap_search_base: 'dc=minuettevõtte,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 konfigureerimise näide lihtsa autentimise jaoks (kasutades DSA kontot):
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP konfiguratsioon DSA-ga'
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 paroole ansible vault'is
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 konfigureerimise näide lihtsaks autentimiseks (kasutades DSA kontot) + grupid, mis on seostatavad rollidega:
nexus_ldap_realm: true
ldap_connections
- ldap_name: 'LDAP konfiguratsioon DSA-ga'
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 paroole ansible vault'is
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 (DSA konto kasutamisega) + rühmad, mida dünaamiliselt vastavusse seostatakse kui rollid:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP konfiguratsioon DSA-ga'
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 paroole ansible vaultis
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 # kasutatakse privileegi uuendamiseks võtmena
# type:
description: 'Lugemise & Sirvimise juurdepääs kõigile hoidlatele'
repository: '*'
actions: # võivad olla add, browse, create, delete, edit, read või * (kõik)
- read
- browse
# pattern: mustre
# domain: domeen
# script_name: nimiLoend konfigureerimiseks. Vaadake dokumentatsiooni ja graafikat, et kontrollida, millised muutujad peavad olema paigutatud vastavalt privileegi tüübile.
Needite elemendid ühinevad järgmiste vaikeväärtustega:
_nexus_privilege_defaults:
type: repository-view
format: maven2
actions:
- readRollid (Nexus'i sees on mõeldud)
nexus_roles:
- id: Developpers # saab siduda LDAP grupi ID-ga, используется также ключом role'i uuendamiseks
name: developers
description: Kõik arendajad
privileges:
- nx-search-read
- all-repos-read
roles: [] # viidatud teiste rollide nimedeleLoend seadistamiseks.
Kasutajad
nexus_local_users: []
# - username: jenkins # используется в качестве ключа для обновления
# state: present # vaikeväärtus, kui on jäetud vahele, kasutage 'absent', kui soovite kasutajat eemaldada
# first_name: Jenkins
# last_name: CI
# email: support@company.com
# password: "s3cr3t"
# roles:
# - developers # rolli IDLokaalsed (mitte-LDAP) kasutajad/kontod, mis tuleb Nexus'is luua.
Lokaalsete (mitte-LDAP) kasutajate/kontode loend Nexus'is loomiseks.
nexus_ldap_users: []
# - username: j.doe
# state: present
# roles:
# - "nx-admin"Ldap kasutajate/rollide kaardistamine. Oleku absent eemaldab rollid olemasolevalt kasutajalt, kui ta juba eksisteerib.
Ldap kasutajaid ei eemaldata. Katse määrata roll mitteolemasolevale kasutajale toob kaasa vea.
Sisu selektorid
nexus_content_selectors:
- name: docker-login
description: Docker'i sisselogimise õiguse selektor
search_expression: format=="docker" and path=~"/v2/"Lisainfoks sisu selektori kohta vaadake. .
Sisuvalija kasutamiseks lisage uus privileeg koos tüüp: repository-content-selector ja vastavacontentSelector
- nimi: docker-login-privilege
tüüp: repository-content-selector
contentSelector: docker-login
kirjeldus: 'Sisse logimine Docker registrisse'
repository: '*'
tegevused:
- lugemine
- sirvimineBlobstores ja hoidlad
nexus_delete_default_repos: falseKustuta hoidlad Nexus installi esialgsest konfiguratsioonist. See samm täidetakse ainult esmakordsel installimisel (kui nexus_data_dir on tuvastatud tühjana).
Hoidlate eemaldamine Nexus vaikimisi konfiguratsioonist. See samm toimub ainult esmakordsel installimisel (kui nexus_data_dir on tühi).
nexus_delete_default_blobstore: falseKustuta vaike blobipood Nexus installi esialgsest konfiguratsioonist. Seda saab teha ainult juhul kui nexus_delete_default_repos: true ja kõik konfigureeritud hoidlad (vt allpool) omavad selget blob_store: custom. See samm täidetakse ainult esmakordsel installimisel (kui nexus_data_dir on tuvastatud tühjana).
Blobide (binaarsete artefaktide) hoidla eemaldamine on vaikimisi välja lülitatud esialgsest konfiguratsioonist. Blobide (binaarsete artefaktide) hoidla eemaldamiseks lülitage nexus_delete_default_repos: truevälja. nexus_data_dir on tühi).
. See samm toimub ainult esmakordsel installimisel (kuilooma. Blobstore'i rada ja reposiit blobstore'i ei saa pärast esialgset loomist uuendada (kõik siin tehtud uuendused ignoreeritakse uue seadistamise korral).
Blobstore'i konfigureerimine S3-l on mugavuse huvides ja see ei kuulu automaatsete testide hulka, mida me Travisel teeme. Palun pange tähele, et S3-l hoidmine on soovitatav ainult AWS-is juurutatud instantside jaoks.
Loomine . Blobstore'i rada ja reposiit blobstore'i ei saa pärast esialgset loomist uuendada (kõik siin tehtud uuendused ignoreeritakse uue seadistamise korral).
BLOB-objektide hoidmise seadistamine S3-l on mugavuse tõttu. Pange tähele, et S3-l hoidmine 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Ülaltoodud on konfiguratsiooni 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. Negatiivse vahemälu konfiguratsioon on valikuline ning kasutab vaikimisi ülaltoodud väärtusi, kui see on jäetud määramata.
Konfiguratsioon Maven. Negatiivse vahemälu (-1) konfiguratsioon on valikuline ning kasutab vaikimisi ülaltoodud väärtusi, kui pole märgitud.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jbossKonfiguratsioon Maven.
Kõik kolm hoidlatüüpi ühendatakse järgmiste vaikimisi väärtustega:
_nexus_repos_maven_defaults:
blob_store: default # Märkus: ei saa uuendada, kui hoidla on loodud
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"
maximum_component_age: -1 # Nexus gui vaikimisi. Ainult vahemällu salvestamiseks
maximum_metadata_age: 1440 # Nexus gui vaikimisi. Ainult vahemällu salvestamiseks
negative_cache_enabled: true # Nexus gui vaikimisi. Ainult vahemällu salvestamiseks
negative_cache_ttl: 1440 # Nexus gui vaikimisi. Ainult vahemällu salvestamiseksDocker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ja yum hoidlatüübid:
vaata defaults/main.yml selleks, et need valikud:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ja yum hoidlad on vaikimisi keelatud:
Vaata defaults/main.yml neid valikuid:
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: falsePange tähele, et erinevate hoidlatüüpide kasutamiseks, välja arvatud maven, peate võib-olla aktiveerima teatud turvapiirkonnad. Vaikimisi on see false
nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false # vajalik docker'i anonüümseks kasutamiseksKaukasutaja valdkonda saab samuti sisse lülitada
nexus_rut_auth_realm: truening pealkiri saab olla seadistatud, määrates
nexus_rut_auth_header: "CUSTOM_HEADER"Kavandatud ülesanded
nexus_scheduled_tasks: []
# # Näide ülesandest blobstore'i tihendamiseks:
# - name: 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 atribuudi salvestatakse nexus sees stringidena
# # Näide ülesandest maven snapshotide puhastamiseks
# - name: Purge-maven-snapshots
# cron: '0 50 23 * * ?'
# typeId: repository.maven.remove-snapshots
# task_alert_email: alerts@example.org # valikuline
# taskProperties:
# repositoryName: "*" # * kõikidele repos. Muuda konkreetseks repo nimeks, kui soovid ainult üht
# minimumRetained: "2"
# snapshotRetentionDays: "2"
# gracePeriodInDays: "2"
# booleanTaskProperties:
# removeIfReleased: true
# # Näide ülesandest kasutamata docker manifestide ja piltide puhastamiseks
# - name: Purge unused docker manifests and images
# cron: '0 55 23 * * ?'
# typeId: "repository.docker.gc"
# task_alert_email: alerts@example.org # valikuline
# taskProperties:
# repositoryName: "*" # * kõikidele repos. Muuda konkreetseks repo nimeks, kui soovid ainult üht
# # Näide ülesandest lõpetamata docker ülesannete puhastamiseks
# - name: 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 ülesandele spetsiifilisedtaskProperties/booleanTaskProperties võib olla üks järgmistest:
- Java tüüpide hierarhiast
org.sonatype.nexus.scheduling.TaskDescriptorSupport - kontrollides HTML-i ülesande loomise vormi oma brauseris
- AJAX-päringute vaatamisest brauseris käsitsi ülesande seadistamisel.
Ülesande omadused peavad olema õigesti välja kuulutatud yaml-blokis vastavalt nende tüübile.:
taskPropertieskõikide stringi omaduste jaoks (nt hoidlate nimed, ajaperioodid jms).booleanTaskPropertieskõikide loogiliste omaduste jaoks (nt peamiselt ruudud graafilises liideses nexuse loomise ülesande puhul).
Varukoopiad
nexus_backup_configure: false
nexus_backup_cron: '0 0 21 * * ?' # Vaata cron'i väljendite määratlemist nexuse loomise ülesande grafit
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 4 varukoopiat vaikimisi (praegune + viimased 3)Varukoopiaid ei seadistata, kuni te ei lülita sisse nexus_backup_configure ühes true.
Sel juhul seadistatakse ajastatud skriptiülesanne Nexus'es käivitamiseks
mõne aja möödudes, nagu on näidatud nexus_backup_cron (vaikimisi iga päev kell 21:00).
Vaata [Groovy šablooni selle ülesande jaoks](templates / backup.groovy.j2) lisainformatsiooni saamiseks.
See ajastatud ülesanne ei sõltu teistest nexus_scheduled_tasks, mille te
oma playbook'is välja kuulutate.
Kui soovite varukoopiaid rotatsiooni panna/likvideerida, seadke nexus_backup_rotate: true ja seadistage varukoopiate arv, mida soovite säilitada, kasutades nexus_backup_keep_rotations (vaikimisi 4).
Rottatsiooni kasutamisel, kui soovite säästa täiendavat kettaruumi varukoopia tegemise ajal,
saate seada nexus_backup_rotate_first: true. See seab esialgsed rullimis-/kustutamisprotsessid enne varukoopia tegemist. Vaikimisi toimub rullimine pärast varukoopia loomist. Pange tähele, et vanad varukoopiad
kustutatakse enne, kui uus varukoopia on tehtud.
Taastamisprotseduur
Käivitage playbook parameetriga -e nexus_restore_point=
(näiteks 2017-12-17-21-00-00 17. detsembril 2017 kell 21:00)
Nexus delet
Hoiatus: see kustutab täielikult käesolevad andmed. Veenduge, et varukoopia oleks enne vajalik, kui see vajalik on.
Kasutage muutujaid nexus_purge, kui soovite alustada nullist ja uuesti installida nexus, kustutades kõik andmed.
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=trueMuutke administraatori parool pärast esmast installimist
nexus_default_admin_password: 'admin123'Seda ei tohiks teie playbookis muuta.. See muutuja täidetakse Nexus admini vaikimisi parooliga esmasel installimisel ning tagab, et saame admini parooli muuta nexus_admin_password.
Kui soovite admini parooli pärast esmasest installimisest muuta, saate selle ajutiselt vanale paroolile muuta käsurealt. Pärast muutmist nexus_admin_password oma mänguraamatus saate käivitada:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPasswordTelegrami kanal Nexus Sonatype'i kohta:
Ainult registreeritud kasutajad saavad küsitluses osaleda. , palun.
Milliseid artefaktide hoidlaid te kasutate?
Sonatype Nexus tasuta
Sonatype Nexus tasuline
Artifactory tasuta
Artifactory tasuline
Harbor
Pulp
Hääletas 9 kasutajat. Eemale jäi 3 kasutajat.
Allikas: habr.com
