ProHoster > ΠΠ»ΠΎΠ³ > Pagdumala > Pag-instalar ug pag-configure sa Nexus Sonatype gamit ang imprastraktura isip pamaagi sa code
Pag-instalar ug pag-configure sa Nexus Sonatype gamit ang imprastraktura isip pamaagi sa code
Ang Sonatype Nexus usa ka integrated nga plataporma diin ang mga developers makahimo sa proxy, store ug pagdumala sa Java (Maven) dependencies, Docker, Python, Ruby, NPM, Bower images, RPM packages, gitlfs, Apt, Go, Nuget, ug pag-apod-apod sa ilang software security.
Ngano nga kinahanglan nimo ang Sonatype Nexus?
Alang sa pagtipig sa mga pribadong artifact;
Alang sa pag-cache sa mga artifact nga gi-download gikan sa Internet;
Mga artifact nga gisuportahan sa batakang Sonatype Nexus package:
Basaha ang bahin sa paggamit sa ansible sa Internet.
Pag-instalar nga mahimo pip install ansible sa workstation diin nagdagan ang playbook.
Pagpahimutang geerlingguy.java sa workstation diin nagdagan ang playbook.
Pagpahimutang geerlingguy.apache sa workstation diin nagdagan ang playbook.
Kini nga tahas gisulayan sa CentOS 7, Ubuntu Xenial (16.04) ug Bionic (18.04), Debian Jessie ug Stretch
jmespath Kinahanglang ma-install ang library sa workstation diin nagdagan ang playbook. Sa pag-instalar: sudo pip install -r requirements.txt
I-save ang playbook file (pananglitan sa ubos) sa nexus.yml file
Pagdalagan ang pag-instalar sa nexus ansible-playbook -i host nexus.yml
Pananglitan nga ansible-playbook para sa pag-instalar sa nexus nga walay LDAP nga adunay Maven (java), Docker, Python, Ruby, NPM, Bower, RPM ug gitlfs nga mga repositoryo.
Mga variable nga adunay mga default nga kantidad (tan-awa default/main.yml):
Kinatibuk-ang mga variable
nexus_version: ''
nexus_timezone: 'UTC'
Sa default, ang tahas mag-install sa labing bag-o nga magamit nga bersyon sa Nexus. Mahimo nimong ayohon ang bersyon pinaagi sa pagbag-o sa variable nexus_version. Tan-awa ang magamit nga mga bersyon sa https://www.sonatype.com/download-oss-sonatype.
Kung mag-ilis ka sa mas bag-ong bersyon, ang tahas mosulay sa pag-update sa imong pag-install sa Nexus.
Kung naggamit ka usa ka karaan nga bersyon sa Nexus kaysa sa labing bag-o, kinahanglan nimo nga sigurohon nga wala ka naggamit mga bahin nga wala magamit sa na-install nga pagpagawas (pananglitan, ang pag-host sa mga repositoryo sa yum magamit alang sa nexus nga labi pa sa 3.8.0, git lfs repo. alang sa koneksyon nga labaw sa 3.3.0 etc.)
nexus timezone mao ang ngalan sa Java time zone, nga mahimong mapuslanon sa kombinasyon sa mosunod nga cron expressions para sa nexus_scheduled nga mga buluhaton.
Ang pantalan ug konteksto nga agianan sa proseso sa koneksyon sa Java. nexus_default_context_path kinahanglan adunay usa ka forward slash kung kini gibutang, pananglitan: nexus_default_context_path: '/nexus/'.
Gumagamit ug Grupo sa Nexus OS
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Ang tiggamit ug grupo nga gigamit sa pagpanag-iya sa mga Nexus file ug pagpadagan sa serbisyo pagahimoon sa papel kung adunay usa nga nawala.
nexus_os_user_home_dir: '/home/nexus'
Tugoti ang pagbag-o sa default nga direktoryo sa balay alang sa nexus user
nexus_installation_dir naglangkob sa na-install nga mga executable nga mga file
nexus_data_dir naglangkob sa tanang configuration, repository ug na-download nga artifact. Pasadya nga mga agianan sa blobstore nexus_data_dir mahimong ipasibo, tan-awa sa ubos nexus_blobstores.
nexus_tmp_dir naglangkob sa tanan nga temporaryo nga mga file. Ang default nga dalan alang sa redhat gibalhin gikan sa /tmp aron mabuntog ang posibleng mga problema sa mga pamaagi sa awtomatikong pagpanglimpyo. Tan-awa ang #168.
Isip ikaduhang pasidaan, ania ang kinutlo gikan sa ibabaw nga dokumento:
Dili girekomenda nga madugangan ang panumduman sa JVM heap lapas sa girekomenda nga mga kantidad sa pagsulay nga mapauswag ang pasundayag. Kini mahimo nga adunay kaatbang nga epekto, nga moresulta sa wala kinahanglana nga trabaho alang sa operating system.
Password sa tagdumala
nexus_admin_password: 'changeme'
Ang password sa account sa "admin" alang sa pag-setup. Naglihok lamang kini sa una nga default nga pag-install. Palihug tan-awa ang [Pagbag-o sa password sa admin pagkahuman sa una nga pag-install](# change-admin-password-after-first-install) kung gusto nimo usbon kini sa ulahi gamit ang usa ka papel.
Girekomenda nga dili tipigan ang imong password sa tin-aw nga teksto sa playbook, apan gamiton ang [ansible-vault encryption] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (bisan inline o sa usa ka bulag nga file nga puno sa e.g. include_vars)
Anonymous nga pag-access pinaagi sa default
nexus_anonymous_access: false
Ang anonymous nga pag-access gi-disable pinaagi sa default. Basaha ang dugang bahin sa anonymous nga pag-access.
Kini nga mga variable nagkontrol kung giunsa ang papel nagkonektar sa Nexus API alang sa paghatag. Para sa mga advanced users lang. Tingali dili nimo gusto nga usbon kini nga mga default setting
Pagpahimutang SSL Reverse Proxy.
Aron mahimo kini kinahanglan nimo nga i-install ang httpd. Note: kanus-a para httpd_setup_enable ibutang ang bilitrue, mga kontak sa nexus 127.0.0.1:8081, sa ingon dili nga direktang ma-access pinaagi sa HTTP port 8081 gikan sa external IP address.
Ang default hostname nga gigamit mao ang nexus_public_hostname. Kung kinahanglan nimo ang lainlaing mga ngalan sa pipila ka hinungdan, mahimo nimong itakda httpd_server_name uban sa laing kahulogan.
Π‘ httpd_copy_ssl_files: true (sa default) ang mga sertipiko sa ibabaw kinahanglan nga anaa sa imong playbook directory ug kopyahon sa server ug i-configure sa apache.
Kung gusto nimo gamiton ang naa na nga mga sertipiko sa server, i-install httpd_copy_ssl_files: false ug ihatag ang mosunod nga mga variable:
# 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 mao ang opsyonal ug kinahanglan nga pasagdan nga dili mabutang kung dili nimo gusto nga ipasibo ang chain file
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: name
Listahan sa mga pribilehiyo alang sa mga setting. Tan-awa ang dokumentasyon ug GUI aron masusi kung unsang mga variable ang kinahanglan itakda depende sa tipo sa pribilehiyo.
Kini nga mga elemento gihiusa uban sa mosunod nga default nga mga bili:
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 names
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: [email protected]
# password: "s3cr3t"
# roles:
# - developers # role ID
Lokal (dili-LDAP) nga tiggamit/account lista sa paghimo sa nexus.
Listahan sa lokal (dili-LDAP) nga tiggamit/account nga himoon sa Nexus.
Ldap mapping sa mga user/role. Estado absent motangtang sa mga tahas gikan sa usa ka kasamtangan nga user kon ang usa anaa na.
Ang mga tiggamit sa Ldap wala matangtang. Ang pagsulay sa pagtakda og papel alang sa usa ka wala naglungtad nga tiggamit moresulta sa usa ka sayup.
Mga tigpili sa sulod
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Alang sa dugang nga kasayuran bahin sa tigpili sa sulud, tan-awa Dokumentasyon.
Aron magamit ang tigpili sa sulud, pagdugang usa ka bag-ong pribilehiyo sa type: repository-content-selector ug may kalabutancontentSelector
I-delete ang mga repository gikan sa nexus install initial default configuration. Kini nga lakang gipatuman lamang sa unang higayon nga pag-instalar (kung kanus-a nexus_data_dir nakit-an nga walay sulod).
Pagtangtang sa mga repositoryo gikan sa default default configuration alang sa Nexus. Kini nga lakang gihimo lamang sa panahon sa unang pag-instalar (sa dihang nexus_data_dir walay sulod).
nexus_delete_default_blobstore: false
I-delete ang default blobstore gikan sa nexus install initial default configuration. Kini mahimo lamang kung nexus_delete_default_repos: true ug ang tanan nga gi-configure nga mga repository (tan-awa sa ubos) adunay klaro blob_store: custom. Kini nga lakang gipatuman lamang sa unang higayon nga pag-instalar (kung kanus-a nexus_data_dir nakit-an nga walay sulod).
Ang pagtangtang sa blob storage (binary artifacts) kay gi-disable sa default gikan sa inisyal nga configuration. Para tangtangon ang blob storage (binary artifacts), i-off nexus_delete_default_repos: true. Kini nga lakang gihimo lamang sa panahon sa unang pag-instalar (sa dihang nexus_data_dir walay sulod).
Mga Blobstore sa paghimo. Ang usa ka blobstore nga agianan ug usa ka repository nga blobstore dili ma-update human sa unang pagmugna (bisan unsa nga update dinhi dili tagdon sa re-provisionning).
Ang pag-configure sa blobstore sa S3 gihatag ingon usa ka kasayon ββββug dili bahin sa mga awtomatiko nga pagsulay nga among gipadagan sa travis. Palihug timan-i nga ang pagtipig sa S3 girekomenda lamang sa mga higayon nga gi-deploy sa AWS.
Paglalang Mga Blobstore. Ang agianan sa pagtipig ug pagtipig nga repository dili ma-update pagkahuman sa una nga paghimo (bisan unsang pag-update dinhi dili tagdon kung gi-install pag-usab).
Ang pag-set up sa blob storage sa S3 gihatag isip kasayon. Palihug timan-i nga ang S3 storage girekomenda lamang sa mga higayon nga gi-deploy sa AWS.
Sa ibabaw usa ka pananglitan nga pag-configure proxy server Maven.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven gi-host nga mga repositoryo configuration. Ang negatibo nga cache config mao ang opsyonal ug mahimong default sa mga kantidad sa ibabaw kung dili iapil.
Pagsalig gi-host nga mga repositoryo Maven. Ang negatibo nga pag-configure sa cache (-1) kay opsyonal ug mag-default sa mga bili sa ibabaw kung dili matino.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Ang tanan nga tulo nga mga tipo sa repository gihiusa sa mga mosunod nga default nga kantidad:
_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 only
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ug yum repository type:
tan-awa ang defaults/main.yml alang niini nga mga opsyon:
Ang Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ug yum repository gi-disable pinaagi sa default:
Tan-awa defaults/main.yml alang niini nga mga opsyon:
Palihug timan-i nga kinahanglan nimo nga hatagan ang pipila nga mga sakup sa seguridad kung gusto nimo gamiton ang ubang mga lahi sa mga repository gawas sa maven. Kini bakak pinaagi sa default
Ang backup dili ma-configure hangtod nga mobalhin ka nexus_backup_configure Π² true.
Sa kini nga kaso, ang naka-iskedyul nga buluhaton sa script i-configure aron modagan sa Nexus
sa gilay-on nga gitakda sa nexus_backup_cron (default 21:00 kada adlaw).
Tan-awa ang [groovy template para niini nga buluhaton](templates/backup.groovy.j2) para sa mga detalye.
Kini nga gikatakda nga buluhaton independente sa uban nexus_scheduled_tasksnga ikaw
ipahibalo sa imong playbook.
Kung gusto nimo i-rotate / tangtangon ang mga backup, i-install nexus_backup_rotate: true ug i-configure ang gidaghanon sa mga backup nga gusto nimong i-save gamit nexus_backup_keep_rotations (default 4).
Kung gigamit ang rotation, kung gusto nimo magtipig dugang nga wanang sa disk sa panahon sa proseso sa pag-backup,
Mahimo nimo i-install nexus_backup_rotate_first: true. Kini mag-configure sa pre-rotation/deletion sa dili pa i-backup. Sa kasagaran, ang rotation mahitabo human mabuhat ang backup. Palihug timan-i nga sa niini nga kaso ang daan nga backups
mapapas sa dili pa himoon ang kasamtangang backup.
Pamaagi sa pagbawi
Pagdagan ang playbook nga adunay parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(pananglitan, 2017-12-17-21-00-00 para sa Disyembre 17, 2017 sa 21:00
Pagtangtang sa nexus
Pasidaan: Kini hingpit nga mapapas ang imong kasamtangan nga datos. Siguruha nga maghimo usa ka backup sa sayo pa kung kinahanglan
Gamit ug variable nexus_purgekung kinahanglan nimo nga i-restart gikan sa wala ug i-install pag-usab ang nexus nga pananglitan nga gikuha ang tanan nga datos.
Usba ang password sa administrator pagkahuman sa una nga pag-install
nexus_default_admin_password: 'admin123'
Dili kini angay usbon sa imong playbook. Kini nga variable gipuno sa default Nexus admin password sa una nga na-install ug nagsiguro nga mahimo namon usbon ang admin password sa nexus_admin_password.
Kung gusto nimong usbon ang password sa tagdumala pagkahuman sa una nga pag-install, mahimo nimo kini temporaryo nga usbon sa daan nga password gikan sa command line. Human sa pagbag-o nexus_admin_password sa imong playbook makadagan ka: