Sonatype Nexus plataforma integratua da, zeinaren bidez garatzaileek Java (Maven) mendekotasunak, Docker, Python, Ruby, NPM, Bower irudiak, RPM paketeak, gitlfs, Apt, Go, Nuget, Apt, Go, Nuget, Apt, Go, Nuget, eta haien softwarearen segurtasuna banatzeko proxy, gorde eta kudeatu ditzaketen.
Zergatik behar duzu Sonatype Nexus?
- Artefaktu pribatuak gordetzeko;
- Internetetik deskargatzen diren artefaktuak cachean gordetzeko;
Sonatype Nexus oinarrizko paketean onartzen diren artefaktuak:
- Java, Maven (jarra)
- Docker
- Python (pip)
- Ruby (bitxi)
- NPM
- Bowers
- Yum (rpm)
- gitlfak
- Raw
- Aproposa (deb)
- Go
- Nuget
Komunitateak onartzen dituen artefaktuak:
- Composer
- Conan
- CPAN
- ELPA
- Helm
- P2
- R
Sonatype Nexus instalatzen erabiliz
Baldintzak
- Irakurri ansible Interneten erabiltzeari buruz.
- Instalatu ansible
pip install ansibleplaybook exekutatzen den lantokian. - instalatu playbook exekutatzen den lantokian.
- instalatu playbook exekutatzen den lantokian.
- Rol hau CentOS 7, Ubuntu Xenial (16.04) eta Bionic (18.04), Debian Jessie eta Stretch-en probatu da
jmespathLiburutegia exekutatzen ari den lantokian instalatu behar da. Instalatzeko:sudo pip install -r requirements.txt- Gorde playbook fitxategia (beheko adibidea) nexus.yml fitxategian
- Exekutatu nexus instalazioa
ansible-playbook -i host nexus.yml
Nexus LDAP gabe instalatzeko ansible-playbook adibidea Maven (java), Docker, Python, Ruby, NPM, Bower, RPM eta gitlfs biltegiekin.
---
- 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: 'Read & Browse access to all repos'
repository: '*'
actions:
- read
- browse
- name: company-project-deploy
description: 'Deployments to company-project'
repository: company-project
actions:
- add
- edit
nexus_roles:
- id: Developpers # maps to the LDAP group
name: developers
description: All developers
privileges:
- nx-search-read
- all-repos-read
- company-project-deploy
roles: []
nexus_local_users:
- username: jenkins # used as key to update
first_name: Jenkins
last_name: CI
email: support@company.com
password: "s3cr3t"
roles:
- Developpers # role ID here
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. Change nexus_config_yum to true for create 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. Change nexus_config_npm to true for create 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. Change nexus_config_docker to true for create 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. Change nexus_config_bower to true for create 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. Change nexus_config_pypi to true for create 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. Change nexus_config_rubygems to true for create 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. Change nexus_config_gitlfs to true for create gitlfs repository
nexus_config_gitlfs: true
nexus_repos_gitlfs_hosted:
- name: gitlfs-hosted
roles:
- { role: geerlingguy.java }
# Debian/Ubuntu only
# - { 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 only
- { 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'] }Pantaila-argazkiak:


Rol aldakorrak
Rolen aldagaiak
Balio lehenetsiak dituzten aldagaiak (ikus default/main.yml):
Aldagai orokorrak
nexus_version: ''
nexus_timezone: 'UTC'Lehenespenez, rolak Nexus-en eskuragarri dagoen azken bertsioa instalatuko du. Bertsioa alda dezakezu aldagaia aldatuz nexus_version. Ikusi eskuragarri dauden bertsioak helbidean .
Bertsio berri batera aldatzen baduzu, rola zure Nexus instalazioa eguneratzen saiatuko da.
Azkena baino Nexus-en bertsio zaharrago bat erabiltzen ari bazara, ziurtatu ez duzula instalatutako bertsioan erabilgarri ez dauden funtzioak erabiltzen ari (adibidez, yum biltegiak ostatzea eskuragarri dago 3.8.0 baino handiagoa den nexus, git lfs repo-rako. 3.3.0 baino handiagoa den nexuserako, etab.)
nexus timezone Java ordu-eremuaren izena da, nexus_scheduled atazetarako cron adierazpen hauekin konbinatuta erabilgarria izan daitekeena.
Nexus ataka eta testuinguruaren bidea
nexus_default_port: 8081
nexus_default_context_path: '/'Java konexio-prozesuaren ataka eta testuinguruaren bidea. nexus_default_context_path Ezarritakoan barra bat izan behar du, adibidez: nexus_default_context_path: '/nexus/'.
Nexus OS erabiltzailea eta taldea
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'Nexus fitxategien jabe izateko eta zerbitzua exekutatzeko erabiltzen den erabiltzailea eta taldea rolaren arabera sortuko da bat falta bada.
nexus_os_user_home_dir: '/home/nexus'Baimendu nexus erabiltzailearen hasierako direktorio lehenetsia aldatzea
Nexus instantzia-direktorioak
nexus_installation_dir: '/opt'
nexus_data_dir: '/var/nexus'
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"Nexus katalogoak.
nexus_installation_dirinstalatutako fitxategi exekutagarriak ditunexus_data_dirkonfigurazio, biltegi eta deskargatutako artefaktu guztiak ditu. Blobstore-bide pertsonalizatuaknexus_data_dirpertsonaliza daiteke, ikus beheannexus_blobstores.nexus_tmp_diraldi baterako fitxategi guztiak ditu. Redhat-en bide lehenetsia mugitu da/tmpgarbiketa automatikoko prozedurekin balizko arazoak gainditzeko. Ikusi #168.
Nexus JVM memoria-erabilera konfiguratzen
nexus_min_heap_size: "1200M"
nexus_max_heap_size: "{{ nexus_min_heap_size }}"
nexus_max_direct_memory: "2G"Hauek dira Nexus-en ezarpen lehenetsiak. Mesedez, ez aldatu balio hauek Irakurri ez baduzu eta ez dute ulertzen zer egiten ari diren.
Bigarren abisu gisa, hona hemen goiko dokumentuaren pasarte bat:
Ez da gomendatzen JVM heap memoria gomendatutako balioetatik haratago handitzea errendimendua hobetu nahian. Horrek kontrako efektua izan dezake, sistema eragilearentzat beharrezkoa ez den lana eraginez.
Administratzailearen pasahitza
nexus_admin_password: 'changeme'Konfiguratzeko "administratzaile" kontuaren pasahitza. Honek lehen instalazio lehenetsian bakarrik funtzionatzen du. Mesedez, ikusi [Aldatu administratzailearen pasahitza lehen instalazioaren ondoren] (# change-admin-password-after-first-install) geroago aldatu nahi baduzu rol bat erabiliz.
Biziki gomendatzen da pasahitza ez gordetzea playbook-an testu garbian, baizik eta [ansible-vault enkriptatzea] erabiltzea () (esaterako, include_vars-ekin kargatutako fitxategi bereizi batean)
Sarbide anonimoa lehenespenez
nexus_anonymous_access: falseSarbide anonimoa desgaituta dago lehenespenez. Irakurri gehiago buruz .
Ostalari izen publikoa
nexus_public_hostname: 'nexus.vm'
nexus_public_scheme: httpsNexus instantzia bere bezeroentzat eskuragarri egongo den domeinu-izena eta eskema guztiz kualifikatua (https edo http).
Rol honetarako API sarbidea
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 }}"Aldagai hauek kontrolatzen dute rola nola konektatzen den Nexus APIra hornitzeko.
Erabiltzaile aurreratuentzat soilik. Seguruenik, ez dituzu ezarpen lehenetsi hauek aldatu nahi
Alderantzizko proxy bat konfiguratzea
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: trueinstalatu .
Horretarako httpd instalatu behar duzu. Oharra: noizrako httpd_setup_enable ezarri balioatrue, nexus kontaktuak 127.0.0.1:8081, horrela ez 8081 HTTP atakaren bidez zuzenean eskura daiteke kanpoko IP helbidetik.
Erabilitako ostalari-izena lehenetsia da nexus_public_hostname. Arrazoiren bategatik izen desberdinak behar badituzu, ezar dezakezu httpd_server_name beste esanahi batekin.
С httpd_copy_ssl_files: true (lehenespenez) goiko ziurtagiriak zure playbook direktorioan egon beharko lukete eta zerbitzarian kopiatu eta apache-n konfiguratuko dira.
Zerbitzarian dauden ziurtagiriak erabili nahi badituzu, instalatu httpd_copy_ssl_files: false eta eman aldagai hauek:
# 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 aukerakoa da eta ezarri gabe utzi behar da kate-fitxategia pertsonalizatu nahi ez baduzu
httpd_default_admin_email: "admin@example.com"Ezarri administratzailearen helbide elektroniko lehenetsia
LDAP konfigurazioa
LDAP konexioak eta segurtasun eremua desgaituta daude lehenespenez
nexus_ldap_realm: false
ldap_connections: [], elementu bakoitzak honela dauka:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'My Company LDAP' # used as a key to update the ldap config
ldap_protocol: 'ldaps' # ldap or ldaps
ldap_hostname: 'ldap.mycompany.com'
ldap_port: 636
ldap_use_trust_store: false # Wether or not to use certs in the nexus trust store
ldap_search_base: 'dc=mycompany,dc=net'
ldap_auth: 'none' # or simple
ldap_auth_username: 'username' # if auth = simple
ldap_auth_password: 'password' # if auth = simple
ldap_user_base_dn: 'ou=users'
ldap_user_filter: '(cn=*)' # (optional)
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: falseAutentifikazio anonimorako LDAP konfigurazio adibidea (lotura anonimoa), hau ere "gutxieneko" konfigurazioa da:
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 konfigurazio adibidea autentifikazio sinplerako (DSA kontua erabiliz):
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 }}" # better keep passwords in an ansible vault
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 konfigurazio adibidea autentifikazio sinplerako (DSA kontua erabiliz) + rol gisa mapatutako taldeak:
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 }}" # better keep passwords in an ansible vault
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 konfigurazio adibidea autentifikazio sinplerako (DSA kontua erabiliz) + rol gisa dinamikoki mapatutako taldeak:
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 }}" # better keep passwords in an ansible vault
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'Pribilegioa
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: nameZerrenda ezarpenetarako. Begiratu dokumentazioa eta GUI-a pribilegio motaren arabera zein aldagai ezarri behar diren egiaztatzeko.
Elementu hauek balio lehenetsi hauekin konbinatzen dira:
_nexus_privilege_defaults:
type: repository-view
format: maven2
actions:
- readRolak (barneko Nexus esan nahi du)
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 namesZerrenda ezarpenetarako.
Kide
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: support@company.com
# password: "s3cr3t"
# roles:
# - developers # role IDNexus-en sortzeko tokiko erabiltzaile/kontuen zerrenda (LDAP ez direnak).
Nexus-en sortu beharreko tokiko (LDAP ez diren) erabiltzaile/kontuen zerrenda.
nexus_ldap_users: []
# - username: j.doe
# state: present
# roles:
# - "nx-admin"Erabiltzaile/rolen Ldap mapaketa. Estatu absent lehendik dagoen erabiltzaile bati rolak kenduko dizkio jada existitzen bada.
Ldap erabiltzaileak ez dira ezabatzen. Existitzen ez den erabiltzaile bati rol bat ezartzen saiatzeak errore bat eragingo du.
Eduki-hautatzaileak
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"Eduki-hautatzaileari buruzko informazio gehiago lortzeko, ikus .
Eduki-hautatzailea erabiltzeko, gehitu pribilegio berri bat honekin type: repository-content-selector eta garrantzitsuakcontentSelector
- name: docker-login-privilege
type: repository-content-selector
contentSelector: docker-login
description: 'Login to Docker registry'
repository: '*'
actions:
- read
- browseBlob-dendak eta biltegiak
nexus_delete_default_repos: falseEzabatu biltegiak nexus install hasierako konfigurazio lehenetsitik. Urrats hau lehen instalatzean bakarrik exekutatzen da (noiz nexus_data_dir hutsik detektatu da).
Nexus-en lehenetsitako konfigurazio lehenetsitik biltegiak kentzen. Urrats hau lehen instalazioan bakarrik egiten da (noiz nexus_data_dir hutsik).
nexus_delete_default_blobstore: falseEzabatu blob denda lehenetsia nexus instalatzeko hasierako konfigurazio lehenetsitik. Hau bada bakarrik egin daiteke nexus_delete_default_repos: true eta konfiguratutako biltegi guztiek (ikus behean) esplizitua dute blob_store: custom. Urrats hau lehen instalatzean bakarrik exekutatzen da (noiz nexus_data_dir hutsik detektatu da).
Blob biltegiratzea (artefaktu bitarrak) lehenespenez desgaituta dago hasierako konfiguraziotik. Blob biltegiratzea (artefaktu bitarrak) kentzeko, desaktibatu nexus_delete_default_repos: true. Urrats hau lehen instalazioan bakarrik egiten da (noiz nexus_data_dir hutsik).
nexus_blobstores: []
# example blobstore item :
# - 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 }}"sortzeko. Blob dendaren bide bat eta biltegiko blob denda bat ezin dira eguneratu hasierako sorreraren ondoren (hemengo edozein eguneraketari ez ikusi egingo zaio berriro hornitzean).
S3-n blobstore konfiguratzea erosotasun gisa eskaintzen da eta ez da travis-en egiten ditugun proba automatikoen parte. Kontuan izan S3-n gordetzea AWS-en inplementatutako instantzietarako soilik gomendatzen dela.
Sorkuntza . Biltegiratze-bidea eta biltegiratze-biltegia ezin dira eguneratu hasierako sorreraren ondoren (hemengo edozein eguneraketa ez ikusi egingo da berriro instalatzen denean).
S3-n blob biltegiratzea erosotasun gisa eskaintzen da. Kontuan izan S3 biltegiratzea AWS-en inplementatutako instantzietarako soilik gomendatzen dela.
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: 1440Goian konfigurazio adibide bat dago Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"Maven konfigurazioa. Cache-konfigurazio negatiboa hautazkoa da eta lehenetsita egongo dira goiko balioak baztertzen badira.
konfigurazioa Maven. Cache-ko konfigurazio negatiboa (-1) hautazkoa da eta lehenetsita egongo da goiko balioak zehaztu ezean.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jbosskonfigurazioa Maven.
Hiru biltegi motak balio lehenetsi hauekin konbinatzen dira:
_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 onlyDocker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS eta yum biltegi motak:
ikusi defaults/main.yml aukera hauetarako:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS eta yum biltegiak lehenespenez desgaituta daude:
Ikusi defaults/main.yml aukera hauetarako:
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: falseKontuan izan, agian, segurtasun-esparru jakin batzuk gaitu beharko dituzula maven ez den beste biltegi mota batzuk erabili nahi badituzu. Hau faltsua da lehenespenez
nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false # required for docker anonymous accessUrruneko Erabiltzaileen Erreinua erabiliz ere gaitu daiteke
nexus_rut_auth_realm: trueeta izenburua pertsonalizatu daiteke definituz
nexus_rut_auth_header: "CUSTOM_HEADER"Programatutako zereginak
nexus_scheduled_tasks: []
# # Example task to compact blobstore :
# - name: compact-docker-blobstore
# cron: '0 0 22 * * ?'
# typeId: blobstore.compact
# task_alert_email: alerts@example.org # optional
# taskProperties:
# blobstoreName: {{ nexus_blob_names.docker.blob }} # all task attributes are stored as strings by nexus internally
# # Example task to purge maven snapshots
# - name: Purge-maven-snapshots
# cron: '0 50 23 * * ?'
# typeId: repository.maven.remove-snapshots
# task_alert_email: alerts@example.org # optional
# taskProperties:
# repositoryName: "*" # * for all repos. Change to a repository name if you only want a specific one
# minimumRetained: "2"
# snapshotRetentionDays: "2"
# gracePeriodInDays: "2"
# booleanTaskProperties:
# removeIfReleased: true
# # Example task to purge unused docker manifest and images
# - name: Purge unused docker manifests and images
# cron: '0 55 23 * * ?'
# typeId: "repository.docker.gc"
# task_alert_email: alerts@example.org # optional
# taskProperties:
# repositoryName: "*" # * for all repos. Change to a repository name if you only want a specific one
# # Example task to purge incomplete docker uploads
# - name: Purge incomplete docker uploads
# cron: '0 0 0 * * ?'
# typeId: "repository.docker.upload-purge"
# task_alert_email: alerts@example.org # optional
# taskProperties:
# age: "24" ezarpenetarako. typeId eta zeregin zehatzataskProperties/booleanTaskProperties bai asma dezakezu:
- Java motako hierarkiatik
org.sonatype.nexus.scheduling.TaskDescriptorSupport - zure arakatzailean HTML ataza sortzeko formularioa egiaztatzea
- ataza bat eskuz konfiguratzean arakatzailean AJAX eskaerak ikustetik.
Zereginen propietateak yaml bloke egokian deklaratu behar dira motaren arabera:
taskPropertiesKateen propietate guztietarako (hau da, biltegiaren izenak, biltegiaren izenak, denbora-aldiak...).booleanTaskPropertiespropietate logiko guztietarako (hau da, batez ere, nexus sortzeko atazaren GUI-ko kontrol-laukiak).
Backups
nexus_backup_configure: false
nexus_backup_cron: '0 0 21 * * ?' # See cron expressions definition in nexus create task gui
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 # Keep 4 backup rotation by default (current + last 3)Babeskopia ez da konfiguratuko aldatu arte nexus_backup_configure в true.
Kasu honetan, programatutako script-ataza Nexus-en exekutatzeko konfiguratuko da
urtean zehaztutako tartean nexus_backup_cron (lehenetsita 21:00 egunero).
Ikusi [zeregin honetarako groovy txantiloia](templates/backup.groovy.j2) xehetasunetarako.
Programatutako zeregin hau besteengandik independentea da nexus_scheduled_taskszuk
iragarri zure liburuko liburuan.
Babeskopia biratu/ezabatu nahi baduzu, instalatu nexus_backup_rotate: true eta konfiguratu erabilita gorde nahi dituzun babeskopien kopurua nexus_backup_keep_rotations (lehenetsia 4).
Errotazioa erabiltzean, babeskopia-prozesuan diskoko espazio gehigarria aurreztu nahi baduzu,
Instalatu dezakezu nexus_backup_rotate_first: true. Honek babeskopia baino lehen biraketa/ezabatzea konfiguratuko du. Lehenespenez, biraketa babeskopia sortu ondoren gertatzen da. Kontuan izan kasu honetan babeskopia zaharrak direla
uneko babeskopia egin aurretik ezabatuko da.
Berreskuratzeko prozedura
Exekutatu playbook parametroarekin -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(adibidez, 2017-12-17-21-00-00 17ko abenduaren 2017rako 21:00etan
Lotura kentzen
Abisua: honek zure uneko datuak guztiz ezabatuko ditu. Ziurtatu segurtasun kopia bat lehenago egiten duzula beharrezkoa bada
Erabili aldagai bat nexus_purgehutsetik berrabiarazi eta datu guztiak kenduta nexus instantzia berriro instalatu behar baduzu.
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=trueAldatu administratzailearen pasahitza lehenengo instalazioaren ondoren
nexus_default_admin_password: 'admin123'Hau ez da aldatu behar zure jolas-liburuan. Aldagai hau lehen aldiz instalatzen denean Nexus administratzailearen pasahitz lehenetsiarekin betetzen da eta administratzaile pasahitza honela alda dezakegula ziurtatzen du. nexus_admin_password.
Lehen instalazioaren ondoren administratzailearen pasahitza aldatu nahi baduzu, aldi baterako pasahitz zaharrera alda dezakezu komando lerrotik. Aldaketaren ostean nexus_admin_password zure playbook-en exekutatu dezakezu:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPasswordTelegram kanala Nexus Sonatype-n:
Erregistratutako erabiltzaileek soilik parte hartu dezakete inkestan. , mesedez.
Zein artefaktu-biltegi erabiltzen dituzu?
Sonatype Nexus doakoa da
Sonatype Nexus ordainduta
Artifactory doakoa da
Artifactory ordainduta
Harbor
Pulp
9 erabiltzailek eman dute botoa. 3 erabiltzaile abstenitu ziren.
Iturria: www.habr.com
