ProHoster > blog > Amministrazzjoni > L-installazzjoni u l-konfigurazzjoni ta' Nexus Sonatype billi tuża l-infrastruttura bħala approċċ ta' kodiċi
L-installazzjoni u l-konfigurazzjoni ta' Nexus Sonatype billi tuża l-infrastruttura bħala approċċ ta' kodiċi
Sonatype Nexus hija pjattaforma integrata li permezz tagħha l-iżviluppaturi jistgħu jipprokuraw, jaħżnu u jimmaniġġjaw id-dipendenzi ta' Java (Maven), Docker, Python, Ruby, NPM, immaġini Bower, pakketti RPM, gitlfs, Apt, Go, Nuget, u jqassmu s-sigurtà tas-softwer tagħhom.
Għaliex għandek bżonn Sonatype Nexus?
Għall-ħażna ta' artifacts privati;
Għall-caching artifacts li jitniżżlu mill-Internet;
B'mod awtomatiku, ir-rwol se jinstalla l-aħħar verżjoni disponibbli ta 'Nexus. Tista' tiffissa l-verżjoni billi tibdel il-varjabbli nexus_version. Ara verżjonijiet disponibbli fuq https://www.sonatype.com/download-oss-sonatype.
Jekk tibdel għal verżjoni aktar ġdida, ir-rwol jipprova jaġġorna l-installazzjoni Nexus tiegħek.
Jekk qed tuża verżjoni eqdem ta' Nexus mill-aktar reċenti, għandek tiżgura li m'intix qed tuża karatteristiċi li mhumiex disponibbli fir-rilaxx installat (pereżempju, l-hosting ta' repożitorji yum huwa disponibbli għal nexus akbar minn 3.8.0, git lfs repo għal nexus akbar minn 3.3.0 eċċ.)
nexus timezone huwa l-isem taż-żona tal-ħin Java, li jista 'jkun utli flimkien mal-espressjonijiet cron li ġejjin għal kompiti nexus_scheduled.
Il-port u l-passaġġ tal-kuntest tal-proċess tal-konnessjoni Java. nexus_default_context_path għandu jkun fih linja mmejla 'l quddiem meta tkun issettjata, eż: nexus_default_context_path: '/nexus/'.
Nexus OS Utent u Grupp
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
L-utent u l-grupp użati biex jippossjedu fajls Nexus u jmexxu s-servizz se jinħolqu mir-rwol jekk wieħed ikun nieqes.
nexus_installation_dir fih fajls eżekutibbli installati
nexus_data_dir fih il-konfigurazzjoni, ir-repożitorji u l-artifatti mniżżla kollha. Mogħdijiet blobstore apposta nexus_data_dir jistgħu jiġu personalizzati, ara hawn taħt nexus_blobstores.
nexus_tmp_dir fih il-fajls temporanji kollha. Il-mogħdija default għal redhat ġiet imċaqlaq minn /tmp biex jingħelbu problemi potenzjali bi proċeduri ta' tindif awtomatiku. Ara #168.
Bħala t-tieni twissija, hawn silta mid-dokument ta’ hawn fuq:
Mhux irrakkomandat li tiżdied il-memorja tal-borġ JVM lil hinn mill-valuri rakkomandati f'tentattiv biex ittejjeb il-prestazzjoni. Dan jista 'effettivament ikollu l-effett oppost, li jirriżulta f'xogħol bla bżonn għas-sistema operattiva.
Password tal-amministratur
nexus_admin_password: 'changeme'
Il-password tal-kont “admin” għas-setup. Dan jaħdem biss fuq l-ewwel installazzjoni default. Jekk jogħġbok ara [Ibdel il-password tal-admin wara l-ewwel installazzjoni](# change-admin-password-after-first-install) jekk trid tibdelha aktar tard billi tuża rwol.
Huwa rakkomandat ħafna li ma taħżinx il-password tiegħek f'test ċar fil-playbook, iżda li tuża [ansible-vault encryption] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (jew inline jew f'fajl separat mgħobbi b'eż. include_vars)
Aċċess anonimu awtomatikament
nexus_anonymous_access: false
L-aċċess anonimu huwa diżattivat awtomatikament. Aqra aktar dwar aċċess anonimu.
Dawn il-varjabbli jikkontrollaw kif ir-rwol jgħaqqad mal-API Nexus għall-forniment. Għal utenti avvanzati biss. Probabilment ma tridx tibdel dawn is-settings default
Set SSL Reverse Proxy.
Biex tagħmel dan għandek bżonn tinstalla httpd. Nota: meta għal httpd_setup_enable valur stabbilittrue, Nexus kuntatti 127.0.0.1:8081, għalhekk ebda tkun aċċessibbli direttament permezz tal-port HTTP 8081 mill-indirizz IP estern.
L-isem tal-hostname default użat huwa nexus_public_hostname. Jekk għandek bżonn ismijiet differenti għal xi raġuni, tista 'tissettja httpd_server_name b’tifsira differenti.
С httpd_copy_ssl_files: true (b'mod awtomatiku) iċ-ċertifikati ta 'hawn fuq għandhom jeżistu fid-direttorju tal-playbook tiegħek u se jiġu kkupjati fis-server u kkonfigurati f'apache.
Jekk trid tuża ċertifikati eżistenti fuq is-server, installa httpd_copy_ssl_files: false u agħti l-varjabbli li ġejjin:
# 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 hija fakultattiva u għandha titħalla mhux issettjata jekk ma tridx tippersonalizza l-fajl tal-katina
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
Lista privileġġi għall-issettjar. Ħares lejn id-dokumentazzjoni u l-GUI biex tivverifika liema varjabbli jeħtieġ li jiġu stabbiliti skont it-tip ta 'privileġġ.
Dawn l-elementi huma kkombinati mal-valuri default li ġejjin:
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
Lista ta' utenti/kontijiet lokali (mhux LDAP) biex toħloq fin-nexus.
Lista ta' utenti/kontijiet lokali (mhux LDAP) li għandhom jinħolqu fin-Nexus.
Immappjar Ldap ta' utenti/rwoli. Stat absent se tneħħi rwoli minn utent eżistenti jekk wieħed diġà jeżisti.
L-utenti Ldap mhumiex imħassra. Li tipprova tistabbilixxi rwol għal utent ineżistenti se tirriżulta fi żball.
Seletturi tal-kontenut
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Għal aktar informazzjoni dwar is-selettur tal-kontenut, ara Dokumentazzjoni.
Biex tuża s-selettur tal-kontenut, żid privileġġ ġdid ma' type: repository-content-selector u rilevanticontentSelector
Ħassar ir-repożitorji mill-konfigurazzjoni default inizjali tal-installazzjoni tal-nexus. Dan il-pass jitwettaq biss mal-ewwel installazzjoni (meta nexus_data_dir ġiet skoperta vojta).
It-tneħħija ta' repożitorji mill-konfigurazzjoni default default għal Nexus. Dan il-pass isir biss waqt l-ewwel installazzjoni (meta nexus_data_dir vojta).
nexus_delete_default_blobstore: false
Ħassar il-blobstore default mill-konfigurazzjoni default inizjali tal-installazzjoni tal-nexus. Dan jista' jsir biss jekk nexus_delete_default_repos: true u r-repożitorji kkonfigurati kollha (ara hawn taħt) għandhom espliċita blob_store: custom. Dan il-pass jitwettaq biss fl-installazzjoni għall-ewwel darba (meta nexus_data_dir ġiet skoperta vojta).
It-tneħħija tal-ħażna tal-blob (artifacts binarji) hija diżattivata awtomatikament mill-konfigurazzjoni inizjali. Biex tneħħi l-ħażna blob (artifacts binarji), itfi nexus_delete_default_repos: true. Dan il-pass isir biss waqt l-ewwel installazzjoni (meta nexus_data_dir vojta).
Blobstores biex toħloq. Mogħdija blobstore u blobstore repożitorju ma jistgħux jiġu aġġornati wara l-ħolqien inizjali (kwalunkwe aġġornament hawnhekk se jiġi injorat mal-forniment mill-ġdid).
Il-konfigurazzjoni ta' blobstore fuq S3 hija pprovduta bħala konvenjenza u mhix parti mit-testijiet awtomatizzati li nwettqu fuq travis. Jekk jogħġbok innota li l-ħażna fuq S3 hija rakkomandata biss għal każijiet skjerati fuq AWS.
Ħolqien Blobstores. Il-mogħdija tal-ħażna u r-repożitorju tal-ħażna ma jistgħux jiġu aġġornati wara l-ħolqien inizjali (kwalunkwe aġġornament hawn se jiġi injorat meta jiġi installat mill-ġdid).
It-twaqqif tal-ħażna blob fuq S3 huwa pprovdut bħala konvenjenza. Jekk jogħġbok innota li l-ħażna S3 hija rakkomandata biss għal każijiet skjerati fuq AWS.
Hawn fuq hemm eżempju ta 'konfigurazzjoni 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 repożitorji ospitati konfigurazzjoni. Il-konfigurazzjoni tal-cache negattiva mhix obbligatorja u tkun default għall-valuri ta 'hawn fuq jekk titħalla barra.
Konfigurazzjoni repożitorji ospitati Maven. Il-konfigurazzjoni tal-cache negattiva (-1) hija fakultattiva u se tkun default għall-valuri ta 'hawn fuq jekk ma tkunx speċifikata.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
It-tliet tipi ta’ repożitorju huma kkombinati mal-valuri awtomatiċi li ġejjin:
_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 u tipi ta’ repożitorji yum:
ara defaults/main.yml għal dawn l-għażliet:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS u yum repożitorji huma diżattivati awtomatikament:
Ara defaults/main.yml għal dawn l-għażliet:
Jekk jogħġbok innota li jista' jkollok bżonn tattiva ċerti ambiti tas-sigurtà jekk trid tuża tipi oħra ta' repożitorji minbarra maven. Dan huwa falz awtomatikament
Il-backup mhux se jiġi kkonfigurat sakemm taqleb nexus_backup_configure в true.
F'dan il-każ, il-kompitu tal-iskript skedat jiġi kkonfigurat biex jaħdem fuq Nexus
fl-intervall speċifikat fi nexus_backup_cron (default 21:00 kuljum).
Ara [template groovy għal dan il-kompitu](templates/backup.groovy.j2) għad-dettalji.
Dan il-kompitu skedat huwa indipendenti minn oħrajn nexus_scheduled_tasksli inti
ħabbar fil-playbook tiegħek.
Jekk trid iddawwar/tħassar backups, installa nexus_backup_rotate: true u kkonfigurat in-numru ta 'backups li tixtieq tiffranka bl-użu nexus_backup_keep_rotations (default 4).
Meta tuża r-rotazzjoni, jekk trid tiffranka spazju addizzjonali fuq id-diska matul il-proċess tal-backup,
Tista 'tinstalla nexus_backup_rotate_first: true. Dan se jikkonfigura pre-rotazzjoni/tħassir qabel il-backup. B'mod awtomatiku, ir-rotazzjoni sseħħ wara li tinħoloq backup. Jekk jogħġbok innota li f'dan il-każ il-backups qodma
se titħassar qabel ma ssir il-backup attwali.
Proċedura ta' rkupru
Mexxi playbook bil-parametru -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(pereżempju, 2017-12-17-21-00-00 għas-17 ta' Diċembru 2017 fil-21:00
Tneħħija tar-rabta
Twissija: Dan se jħassar kompletament id-dejta attwali tiegħek. Kun żgur li tagħmel backup aktar kmieni jekk meħtieġ
Uża varjabbli nexus_purgejekk għandek bżonn terġa 'tibda mill-bidu u terġa' tinstalla l-istanza tan-nexus bid-dejta kollha mneħħija.
Ibdel il-password tal-amministratur wara l-ewwel installazzjoni
nexus_default_admin_password: 'admin123'
Dan m'għandux jinbidel fil-playbook tiegħek. Din il-varjabbli hija mimlija bil-password tal-admin default Nexus meta tkun installata għall-ewwel darba u tiżgura li nistgħu nibdlu l-password tal-amministratur għal nexus_admin_password.
Jekk trid tibdel il-password tal-amministratur wara l-ewwel installazzjoni, tista 'tbiddel temporanjament għall-password l-antika mil-linja tal-kmand. Wara l-bidla nexus_admin_password fil-playbook tiegħek tista' tmexxi: