Sonatype Nexus â en integrerad plattform dĂ€r utvecklare kan proxy, lagra och hantera Java (Maven)-beroenden, Docker-bilder, Python, Ruby, NPM, Bower, RPM-paket, gitlfs, Apt, Go, Nuget och Ă€ven distribuera sin programvara.
Varför behöver man Sonatype Nexus?
- För att lagra privata artefakter;
- För att cacha artefakter som laddas ner frÄn internet;
Artefakter som stöds i standarddistributionen av Sonatype Nexus:
- Java, Maven (jar)
- Docker
- Python (pip)
- Ruby (gem)
- NPM
- Bower
- Yum (rpm)
- gitlfs
- Raw
- Apt (deb)
- Go
- Nuget
Artefakter som stöds av gemenskapen:
- Composer
- Conan
- CPAN
- ELPA
- Helm
- P2
- R
Installera Sonatype Nexus med hjÀlp av
Krav
- LÀs om hur man anvÀnder ansible pÄ internet.
- Installera ansible
pip install ansiblepÄ arbetsstationen dÀr playbooken körs. - Installera pÄ arbetsstationen dÀr playbooken körs.
- Installera pÄ arbetsstationen dÀr playbooken körs.
- Denna roll har testats pÄ CentOS 7, Ubuntu Xenial (16.04) och Bionic (18.04), Debian Jessie och Stretch
jmespathbiblioteket mÄste installeras pÄ arbetsstationen dÀr playbooken körs. För installation, utförsudo pip install -r requirements.txt- Spara playbook-filen (exempel nedan) till filen nexus.yml
- Kör installationen av nexus
ansible-playbook -i host nexus.yml
Exempel pÄ ansible-playbook för att installera nexus utan LDAP med Maven (java), Docker, Python, Ruby, NPM, Bower, RPM och gitlfs-repositorier.
---
- 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: 'LÀs- och blÀddringsÄtkomst till alla repo'
repository: '*'
actions:
- read
- browse
- name: company-project-deploy
description: 'Uppdateringar till company-project'
repository: company-project
actions:
- add
- edit
nexus_roles:
- id: Developpers # mappas till LDAP-gruppen
name: utvecklare
description: Alla utvecklare
privileges:
- nx-search-read
- all-repos-read
- company-project-deploy
roles: []
nexus_local_users:
- username: jenkins # anvÀnds som nyckel för uppdatering
first_name: Jenkins
last_name: CI
email: support@company.com
password: "s3cr3t"
roles:
- Developpers # roll-ID hÀr
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. Ăndra nexus_config_yum till true för att skapa 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. Ăndra nexus_config_npm till true för att skapa 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. Ăndra nexus_config_docker till true för att skapa 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. Ăndra nexus_config_bower till true för att skapa 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. Ăndra nexus_config_pypi till true för att skapa 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. Ăndra nexus_config_rubygems till true för att skapa 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. Ăndra nexus_config_gitlfs till true för att skapa gitlfs-repository
nexus_config_gitlfs: true
nexus_repos_gitlfs_hosted:
- name: gitlfs-hosted
roles:
- { role: geerlingguy.java }
# Debian/Ubuntu endast
# - { 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 endast
- { 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'] }SkÀrmbilder:


Rollvariabler
Rollvariabler
StandardvÀrden (se default/main.yml):
AllmÀnna variabler
nexus_version: ''
nexus_timezone: 'UTC'Som standard kommer rollen att installera den senaste tillgÀngliga versionen av Nexus. Du kan ÄsidosÀtta versionen genom att Àndra variabeln nexus_version. Se tillgÀngliga versioner pÄ .
Om du Àndrar versionen till en nyare kommer rollen att försöka uppdatera din installerade Nexus.
Om du anvÀnder en Àldre version av Nexus Àn den senaste mÄste du sÀkerstÀlla att du inte anvÀnder funktioner som inte Àr tillgÀngliga i den installerade versionen (t.ex. Àr hosting av yum-repositorier tillgÀnglig för Nexus version 3.8.0 eller senare, git lfs-repo för Nexus version 3.3.0 eller senare, osv.)
nexus tidszon â Ă€r namnet pĂ„ Java-tidszonen som kan vara anvĂ€ndbar i kombination med följande cron-uttryck för nexus_scheduled tasks.
Nexus-port och kontextvÀg
nexus_default_port: 8081
nexus_default_context_path: ' / 'Port och kontextvÀg för Java-kopplingen. nexus_default_context_path mÄste innehÄlla ett snedstreck nÀr det Àr instÀllt, till exempel: nexus_default_context_path: ' /nexus/ '.
AnvÀndare och grupp för Nexus OS
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'AnvÀndaren och gruppen som anvÀnds för att Àga Nexus-filer och köra tjÀnsten kommer att skapas av rollen om den Àr frÄnvarande.
nexus_os_user_home_dir: ' /home/nexus 'TillÄt att Àndra standardhemkatalogen för anvÀndaren nexus
Nexus-instanskataloger
nexus_installation_dir: ' /opt '
nexus_data_dir: ' /var/nexus '
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary(' /var/nexus-tmp', ' /tmp/nexus') }}"Nexus-kataloger.
nexus_installation_dirinnehÄller installerade körbara filernexus_data_dirinnehÄller all konfiguration, repository och uppladdade artefakter. Anpassade sökvÀgar för blobstoresnexus_data_dirkan konfigureras, se nedannexus_blobstores.nexus_tmp_dirinnehÄller alla tillfÀlliga filer. StandardvÀgen för redhat har flyttats frÄn/tmpför att övervinna potentiella problem med automatiserade stÀdrutiner. Se #168.
Konfiguration av minnesanvÀndning för Nexus JVM
nexus_min_heap_size: "1200M"
nexus_max_heap_size: "{{ nexus_min_heap_size }}"
nexus_max_direct_memory: "2G"Dessa Àr standardinstÀllningar för Nexus. Tveka inte att Àndra dessa vÀrden Om du inte har lÀst och inte förstÄr vad de gör.
Som en andra varning, hÀr Àr ett utdrag frÄn det ovan nÀmnda dokumentet:
Det rekommenderas inte att öka JVM heap-minnet över de rekommenderade vÀrdena i ett försök att öka prestandan. Detta kan faktiskt ha motsatt effekt och leda till onödig belastning pÄ operativsystemet.
Administratörslösenord
nexus_admin_password: 'changeme'Administrationens konto-lösenord för konfiguration. Detta fungerar endast vid första installationen med standardinstĂ€llningar. VĂ€nligen se [Ăndra administratörslösenordet efter första installationen](# change-admin-password-after-first-install), om du vill Ă€ndra det senare med rollen.
Det Àr starkt rekommenderat att inte lagra ditt lösenord i klartext i playbook, utan att anvÀnda [ansible-vault-kryptering] () (antingen inbÀddat eller i en separat fil som laddas upp med hjÀlp av include_vars)
Anonym Ätkomst som standard
nexus_anonymous_access: falseAnonym Ätkomst som standard Àr avstÀngd. Mer information om .
Offentligt vÀrdnamn
nexus_public_hostname: 'nexus.vm'
nexus_public_scheme: httpsDet fullstÀndiga domÀnnamnet och schemat (https eller http) som Nexus-instansen kommer att vara tillgÀnglig för sina kunder.
API-Ätkomst för denna roll
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 }}"Dessa variabler styr hur rollen ansluter till Nexus API för att tillhandahÄlla.
Endast för avancerade anvÀndare. Du vill troligtvis inte Àndra dessa standardinstÀllningar.
Konfigurera omvÀnd proxy
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: trueInstallera .
För detta behövs httpd. Observera: nÀr httpd_setup_enable Àr instÀllt pÄtrue, ansluter nexus till 127.0.0.1:8081, sÄledes inte blir direkt tillgÀnglig via HTTP-port 8081 med extern IP-adress.
Det anvÀnda vÀrdnamnet som standard Àr nexus_public_hostname. Om du behöver olika namn av nÄgon anledning kan du ange httpd_server_name med ett annat vÀrde.
Med httpd_copy_ssl_files: true (standard) de ovan nÀmnda certifikaten ska finnas i din playbook-directory och kommer att kopieras till servern och konfigureras i apache.
Om du vill anvÀnda befintliga certifikat pÄ servern, stÀll in httpd_copy_ssl_files: false och ange följande variabler:
# 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 Àr valfritt och bör lÀmnas oinstÀllt om du inte vill konfigurera certifikatkedjefilen
httpd_default_admin_email: "admin@example.com"StÀll in standardadministratörens e-postadress
LDAP-konfiguration
LDAP-anslutningar och standard sÀkerhetsomrÄde Àr inaktiverat
nexus_ldap_realm: false
ldap_connections: [], varje element ser ut som följer:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'My Company LDAP' # anvÀnds som en nyckel för att uppdatera ldap-konfigurationen
ldap_protocol: 'ldaps' # ldap eller ldaps
ldap_hostname: 'ldap.mycompany.com'
ldap_port: 636
ldap_use_trust_store: false # Om certifikat ska anvÀndas i nexus tillitslager
ldap_search_base: 'dc=mycompany,dc=net'
ldap_auth: 'none' # eller simple
ldap_auth_username: 'anvÀndarnamn' # om auth = simple
ldap_auth_password: 'lösenord' # om auth = simple
ldap_user_base_dn: 'ou=users'
ldap_user_filter: '(cn=*)' # (valfritt)
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: falseExempel pÄ LDAP-konfiguration för anonym autentisering (anonym bindning), detta Àr ocksÄ en "minimal" konfiguration:
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'Exempel pÄ LDAP-konfiguration för enkel autentisering (med hjÀlp av DSA-konto):
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 }}" # bÀttre att hÄlla lösenord i en 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: falseExempel pÄ LDAP-konfiguration för enkel autentisering (med hjÀlp av DSA-konto) + grupper som mappas som roller:
nexus_ldap_realm: true
ldap_connections
- ldap_name: 'LDAP-konfiguration med 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 }}" # det Àr bÀttre att hÄlla lösenord i en 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: falseExempel pÄ LDAP-konfiguration för enkel autentisering (med DSA-konto) + grupper som dynamiskt mappas till roller:
nexus_ldap_realm: true
ldap_connections:
- ldap_name: 'LDAP-konfiguration med 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 }}" # det Àr bÀttre att hÄlla lösenord i en 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'Behörigheter
nexus_privileges:
- name: all-repos-read # anvÀnds som nyckel för att uppdatera en behörighet
# type:
description: 'LÀsa & BlÀddra Ätkomst till alla repos'
repository: '*'
actions: # kan vara add, browse, create, delete, edit, read eller * (alla)
- read
- browse
# pattern: pattern
# domain: domain
# script_name: nameLista för konfiguration. Se dokumentationen och grÀnssnittet för att kontrollera vilka variabler som bör anges beroende pÄ behörighetstypen.
Dessa element kombineras med följande standardvÀrden:
_nexus_privilege_defaults:
type: repository-view
format: maven2
actions:
- readRoller (som avses inom Nexus)
nexus_roles:
- id: Developpers # kan mappa till ett LDAP-grupp-id, ocksÄ anvÀndas som nyckel för att uppdatera en roll
name: developers
description: Alla utvecklare
privileges:
- nx-search-read
- all-repos-read
roles: [] # referenser till andra rollnamnLista för konfiguration.
AnvÀndare
nexus_local_users: []
# - username: jenkins # anvÀnds som nyckel för att uppdatera
# state: present # standardvÀrde om utelÀmnat, anvÀnd 'absent' för att ta bort anvÀndare
# first_name: Jenkins
# last_name: CI
# email: support@company.com
# password: "s3cr3t"
# roles:
# - developers # roll-IDLista över lokala (icke-LDAP) anvÀndare/konton som ska skapas i nexus.
Lista över lokala (inte LDAP) anvÀndare/konton för skapande i Nexus.
nexus_ldap_users: []
# - anvÀndarnamn: j.doe
# status: nÀrvarande
# roller:
# - "nx-admin"LÀnkning av LDAP-anvÀndare/roller. Status frÄnvarande tar bort roller frÄn en befintlig anvÀndare, om den redan finns.
LDAP-anvÀndare tas inte bort. Att försöka stÀlla in en roll för en icke-existerande anvÀndare kommer att leda till ett fel.
InnehÄllsvalare
nexus_content_selectors:
- namn: docker-login
beskrivning: VÀjare för docker inloggningsprivilegium
sökuttryck: format=="docker" och path=~"/v2/"För mer information om innehÄllsvaljaren, se. .
För att anvÀnda innehÄllsvaljaren, lÀgg till ett nytt privilegium med typ: repository-content-selector och motsvarandecontentSelector
- namn: docker-login-privilegie
typ: repository-content-selector
contentSelector: docker-login
beskrivning: 'Inloggning till Docker-register'
repository: '*'
ÄtgÀrder:
- lÀs
- blÀddraBlobstores och repon
nexus_delete_default_repos: falseTa bort repos frÄn Nexus installations ursprungliga standardkonfiguration. Detta steg utförs endast vid första installation (nÀr nexus_data_dir har upptÀckts som tom).
Ta bort repos frÄn den ursprungliga standardkonfigurationen för Nexus. Detta steg utförs endast vid första installation (nÀr nexus_data_dir Àr tom).
nexus_delete_default_blobstore: falseTa bort den standarda blobstore frÄn Nexus installations ursprungliga standardkonfiguration. Detta kan endast göras om nexus_delete_default_repos: true och alla konfigurerade repos (se nedan) har en tydlig blob_store: custom. Detta steg utförs endast vid första installation (nÀr nexus_data_dir har upptÀckts som tom).
BLOBS-hantering (binaries) Àr avstÀngd som standard frÄn den ursprungliga konfigurationen. För att ta bort blobstore (binarier) stÀng av nexus_delete_default_repos: true. Detta steg utförs endast vid första installation (nÀr nexus_data_dir Àr tom).
nexus_blobstores: []
# exempel blobstore post :
# - namn: separate-storage
# typ: fil
# vÀg: /mnt/custom/path
# - namn: s3-blobstore
# typ: S3
# konfiguration:
# bucket: s3-blobstore
# accessKeyId: "{{ VAULT_ENCRYPTED_KEY_ID }}"
# secretAccessKey: "{{ VAULT_ENCRYPTED_ACCESS_KEY }}"för att skapa. En blobstore-vÀg och en repository blobstore kan inte uppdateras efter det första skapandet (alla uppdateringar hÀr kommer att ignoreras vid omkonfiguration).
Konfigurering av blobstore pÄ S3 erbjuds som en bekvÀmlighet och Àr inte en del av de automatiserade tester vi kör pÄ travis. Observera att lagring pÄ S3 endast rekommenderas för instanser som distribueras pÄ AWS.
Skapande . VÀgen till lagring och repositories lagring kan inte uppdateras efter det första skapandet (alla uppdateringar hÀr kommer att ignoreras vid ny installation).
Konfigurering av blobstore pÄ S3 erbjuds för bekvÀmlighet. Observera att lagring pÄ S3 rekommenderas endast för instanser som distribueras pÄ AWS.
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/'Ovan exempel pÄ konfiguration Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # en av "allow", "allow_once" eller "deny"Maven konfiguration. Negativ cachekonfiguration Àr valfri och kommer att anvÀnda ovanstÄende vÀrden som standard om den utelÀmnas.
Konfiguration Maven. Negativ cachekonfiguration (-1) Àr valfri och kommer att standardmÀssigt anvÀnda ovanstÄende vÀrden om ingen anges.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jbossKonfiguration Maven.
Alla tre typer av repository kombineras med följande standardvÀrden:
_nexus_repos_maven_defaults:
blob_store: default # Obs: kan inte uppdateras nÀr repository har skapats
strict_content_validation: true
version_policy: release # release, snapshot eller mixed
layout_policy: strict # strict eller permissive
write_policy: allow_once # en av "allow", "allow_once" eller "deny"
maximum_component_age: -1 # Nexus gui standard. För proxy endast
maximum_metadata_age: 1440 # Nexus gui standard. För proxy endast
negative_cache_enabled: true # Nexus gui standard. För proxy endast
negative_cache_ttl: 1440 # Nexus gui standard. För proxy endastDocker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS och yum repository typer:
se defaults/main.yml för dessa alternativ:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS och yum Àr som standard avstÀngda:
Se defaults/main.yml för dessa alternativ:
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: falseObservera att du kan behöva aktivera vissa sÀkerhetsomrÄden om du vill anvÀnda andra typer av repositories Àn maven. Detta Àr som standard false
nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false # krÀvs för anonym Ätkomst till dockerRemote User Realm kan ocksÄ aktiveras med
nexus_rut_auth_realm: trueoch headern kan konfigureras genom att ange
nexus_rut_auth_header: "CUSTOM_HEADER"Schemalagda uppgifter
nexus_scheduled_tasks: []
# # Exempeluppgift för att komprimera blobstore:
# - namn: compact-docker-blobstore
# cron: '0 0 22 * * ?'
# typeId: blobstore.compact
# task_alert_email: alerts@example.org # valfritt
# taskProperties:
# blobstoreName: {{ nexus_blob_names.docker.blob }} # alla uppgiftsattribut lagras som strÀngar av nexus internt
# # Exempeluppgift för att rensa maven snapshots
# - namn: Purge-maven-snapshots
# cron: '0 50 23 * * ?'
# typeId: repository.maven.remove-snapshots
# task_alert_email: alerts@example.org # valfritt
# taskProperties:
# repositoryName: "*" # * för alla repos. Ăndra till ett repository namn om du bara vill ha ett specifikt
# minimumRetained: "2"
# snapshotRetentionDays: "2"
# gracePeriodInDays: "2"
# booleanTaskProperties:
# removeIfReleased: true
# # Exempeluppgift för att rensa oanvÀnda docker-manifester och bilder
# - namn: Rensa oanvÀnda docker-manifester och bilder
# cron: '0 55 23 * * ?'
# typeId: "repository.docker.gc"
# task_alert_email: alerts@example.org # valfritt
# taskProperties:
# repositoryName: "*" # * för alla repos. Ăndra till ett repository namn om du bara vill ha ett specifikt
# # Exempeluppgift för att rensa ofullstÀndiga dockeruppladdningar
# - namn: Rensa ofullstÀndiga dockeruppladdningar
# cron: '0 0 0 * * ?'
# typeId: "repository.docker.upload-purge"
# task_alert_email: alerts@example.org # valfritt
# taskProperties:
# age: "24" för konfiguration. typeId och specifika för uppgiftentaskProperties/booleanTaskProperties kan gissas som antingen:
- frÄn hierarkin av Java-typer
org.sonatype.nexus.scheduling.TaskDescriptorSupport - genom att kontrollera HTML-formulÀret för att skapa uppgifter i din webblÀsare
- frÄn att observera AJAX-förfrÄgningar i webblÀsaren vid manuell konfiguration av uppgiften.
Uppgiftsattributen mÄste deklareras i rÀtt YAML-block beroende pÄ deras typ:
taskPropertiesför alla strĂ€ngrelaterade attribut (dvs. namn pĂ„ repos, namn pĂ„ lagringsutrymmen, tidsperioder âŠ).booleanTaskPropertiesför alla logiska attribut (dvs. frĂ€mst checkboxar i anvĂ€ndargrĂ€nssnittet för att skapa nexus-uppgifter).
SĂ€kerhetskopior
nexus_backup_configure: false
nexus_backup_cron: '0 0 21 * * ?' # Se cron-uttrycksdefinitionen i nexus skapa uppgift 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 # BehÄll 4 backup rotationer som standard (nuvarande + senaste 3)SÀkerhetskopiering kommer inte att konfigureras förrÀn du slÄr pÄ nexus_backup_configure pÄ true.
I det hÀr fallet kommer det schemalagda skriptet att konfigureras att köras i Nexus
med det angivna intervallet i nexus_backup_cron (standard 21:00 varje dag).
Se [Groovy-mall för denna uppgift](templates / backup.groovy.j2) för mer information.
Denna schemalagda uppgift Àr oberoende av andra nexus_scheduled_tasks, som du
deklarera i din playbook.
Om du vill rotera/ta bort sÀkerhetskopior, stÀll in nexus_backup_rotate: true och stÀll in antalet sÀkerhetskopior som du vill spara med hjÀlp av nexus_backup_keep_rotations (standard 4).
Vid anvÀndning av rotation, om du vill spara ytterligare diskutrymme under sÀkerhetskopieringsprocessen,
kan du stÀlla in nexus_backup_rotate_first: true. Detta kommer att konfigurera förhandsrotation/radering före sÀkerhetskopiering. Som standard sker rotation efter att sÀkerhetskopian har skapats. Observera att i detta fall gamla sÀkerhetskopior
tas bort innan den aktuella sÀkerhetskopian görs.
à terstÀllningsprocedur
Kör playbook med parametern -e nexus_restore_point=
(till exempel, 2017-12-17-21-00-00 för 17 december 2017 klockan 21:00)
Borttagning av nexus
Varning: detta raderar helt aktuella data. Se till att du gör en sÀkerhetskopia tidigare om det behövs.
AnvÀnd variabeln nexus_purge, om du behöver starta om frÄn början och ominstallera nexus-instansen med radering av all data.
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=trueĂndra administratörslösenordet efter första installationen
nexus_default_admin_password: 'admin123'Detta bör inte Àndras i din playbook. Denna variabel fylls med det standardadministratörslösenord som anvÀnds vid första installationen och sÀkerstÀller att vi kan Àndra administratörslösenordet till nexus_admin_password.
Om du vill Àndra administratörslösenordet efter första installationen kan du tillfÀlligt Àndra det till det gamla lösenordet frÄn kommandoraden. Efter Àndringen nexus_admin_password i din spelbok kan du köra:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPasswordTelegramkanal om Nexus Sonatype:
Endast registrerade anvÀndare kan delta i omröstningen. , tack.
Vilka artefaktlager anvÀnder du?
Sonatype Nexus gratis
Sonatype Nexus betalversion
Artifactory gratis
Artifactory betalversion
Harbor
Pulp
Röstat av 9 anvÀndare. 3 anvÀndare avstod.
KĂ€lla: habr.com
