ProHoster > Блог > Administrado > Instali kaj agordi Nexus Sonatype uzante la infrastrukturon kiel kodan aliron
Instali kaj agordi Nexus Sonatype uzante la infrastrukturon kiel kodan aliron
Sonatype Nexus estas integra platformo per kiu programistoj povas prokuri, stoki kaj administri Java (Maven) dependecojn, Docker, Python, Ruby, NPM, Bower-bildojn, RPM-pakaĵojn, gitlfs, Apt, Go, Nuget, kaj distribui sian programaran sekurecon.
Kial vi bezonas Sonatype Nexus?
Por stokado de privataj artefaktoj;
Por konservado de artefaktoj kiuj estas elŝutitaj de la Interreto;
Artefaktoj subtenataj en la baza Sonatype Nexus-pakaĵo:
Variabloj kun defaŭltaj valoroj (vidu default/main.yml):
Ĝeneralaj variabloj
nexus_version: ''
nexus_timezone: 'UTC'
Defaŭlte, la rolo instalos la plej novan disponeblan version de Nexus. Vi povas ripari la version ŝanĝante la variablon nexus_version. Vidu disponeblajn versiojn ĉe https://www.sonatype.com/download-oss-sonatype.
Se vi ŝanĝas al pli nova versio, la rolo provos ĝisdatigi vian instaladon de Nexus.
Se vi uzas pli malnovan version de Nexus ol la plej nova, vi devas certigi, ke vi ne uzas funkciojn, kiuj ne estas disponeblaj en la instalita eldono (ekzemple, gastigado de yum-deponejoj disponeblas por nexus pli granda ol 3.8.0, git lfs repo). por ligilo pli granda ol 3.3.0 ktp.)
nexus timezone estas la nomo de la Java horzono, kiu povas esti utila kombine kun la sekvaj cron-esprimoj por nexus_scheduled taskoj.
La haveno kaj kunteksta vojo de la Java-konektprocezo. nexus_default_context_path devas enhavi antaŭan oblikvon kiam ĝi estas agordita, ekz.: nexus_default_context_path: '/nexus/'.
Nexus OS Uzanto kaj Grupo
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
La uzanto kaj grupo kutimis posedi Nexus-dosierojn kaj ruli la servon estos kreitaj de la rolo, se iu mankas.
nexus_os_user_home_dir: '/home/nexus'
Permesu ŝanĝi la defaŭltan hejman dosierujon por la nexus-uzanto
nexus_installation_dir enhavas instalitajn ruleblajn dosierojn
nexus_data_dir enhavas ĉiujn agordojn, deponejojn kaj elŝutitajn artefaktojn. Propraj blobstore vojoj nexus_data_dir povas esti personecigita, vidu sube nexus_blobstores.
nexus_tmp_dir enhavas ĉiujn provizorajn dosierojn. La defaŭlta vojo por redhat estis movita de /tmp por venki eblajn problemojn kun aŭtomataj purigaj proceduroj. Vidu #168.
Ĉi tiuj estas la defaŭltaj agordoj por Nexus. Bonvolu ne ŝanĝi ĉi tiujn valorojnSe vi ne legis nexus sistema postuloj memorsekcio kaj ne komprenas, kion ili faras.
Kiel dua averto, jen eltiraĵo de la supra dokumento:
Ne rekomendas pliigi la amasmemoron de JVM preter la rekomenditaj valoroj en provo plibonigi rendimenton. Ĉi tio efektive povas havi la kontraŭan efikon, rezultigante nenecesan laboron por la operaciumo.
Pasvorto de administranto
nexus_admin_password: 'changeme'
La pasvorto de la konto "administranto" por agordo. Ĉi tio funkcias nur ĉe la unua defaŭlta instalado. Bonvolu vidi [Ŝanĝi administran pasvorton post unua instalado](# change-admin-password-after-first-install) se vi volas ŝanĝi ĝin poste uzante rolon.
Estas forte rekomendite ne konservi vian pasvorton kiel klaran tekston en la ludlibro, sed uzi [ansible-vault-ĉifradon] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (aŭ enlinia aŭ en aparta dosiero ŝarĝita kun ekz. include_vars)
Anonima aliro defaŭlte
nexus_anonymous_access: false
Anonima aliro estas malebligita defaŭlte. Legu pli pri anonima aliro.
Ĉi tiuj variabloj kontrolas kiel la rolo konektas al la Nexus API por provizado. Nur por progresintaj uzantoj. Vi verŝajne ne volas ŝanĝi ĉi tiujn defaŭltajn agordojn
Instali SSL Inversa Prokurilo.
Por fari tion vi devas instali httpd. Noto: kiam por httpd_setup_enable fiksita valorotrue, nexus kontaktas 127.0.0.1:8081, tiel ne estante rekte alirebla per HTTP-haveno 8081 de la ekstera IP-adreso.
La defaŭlta gastiga nomo uzata estas nexus_public_hostname. Se vi bezonas malsamajn nomojn ial, vi povas agordi httpd_server_name kun malsama signifo.
С httpd_copy_ssl_files: true (defaŭlte) ĉi-supraj atestiloj devus ekzisti en via ludlibro-dosierujo kaj estos kopiitaj al la servilo kaj agordita en apache.
Se vi volas uzi ekzistantajn atestojn en la servilo, instalu httpd_copy_ssl_files: false kaj provizi la sekvajn variablojn:
# 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 estas laŭvola kaj devus esti lasita neagordita se vi ne volas personecigi la ĉendosieron
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
Listo de privilegioj por agordoj. Rigardu la dokumentadon kaj GUI por kontroli kiuj variabloj devas esti agorditaj depende de la privilegia tipo.
Ĉi tiuj elementoj estas kombinitaj kun la sekvaj defaŭltaj valoroj:
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
Listo de lokaj (ne-LDAP) uzantoj/kontoj por krei en nexus.
Listo de lokaj (ne-LDAP) uzantoj/kontoj por krei en Nexus.
Ldap-mapado de uzantoj/roloj. Ŝtato absent forigos rolojn de ekzistanta uzanto se unu jam ekzistas.
Uzantoj de Ldap ne estas forigitaj. Provi agordi rolon por neekzistanta uzanto rezultigos eraron.
Enhavaj elektiloj
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Por pliaj informoj pri la enhavelektilo, vidu Dokumentado.
Por uzi la enhavan elektilon, aldonu novan privilegion kun type: repository-content-selector kaj trafacontentSelector
Forigu la deponejojn de la nexus instali komencan defaŭltan agordon. Ĉi tiu paŝo estas efektivigita nur ĉe unuafoja instalado (kiam nexus_data_dir estis detektita malplena).
Forigante deponejojn de la defaŭlta agordo por Nexus. Ĉi tiu paŝo estas farita nur dum la unua instalado (kiam nexus_data_dir malplena).
nexus_delete_default_blobstore: false
Forigu la defaŭltan blobvendejon de la komenca defaŭlta agordo de nexus instali. Ĉi tio povas esti farita nur se nexus_delete_default_repos: true kaj ĉiuj agorditaj deponejoj (vidu malsupre) havas eksplicitan blob_store: custom. Ĉi tiu paŝo estas efektivigita nur ĉe unuafoja instalado (kiam nexus_data_dir estis detektita malplena).
Forigo de blobstokado (binaraj artefaktoj) estas malebligita defaŭlte de la komenca agordo. Por forigi blob-stokadon (binaraj artefaktoj), malŝaltu nexus_delete_default_repos: true. Ĉi tiu paŝo estas farita nur dum la unua instalado (kiam nexus_data_dir malplena).
Blobvendejoj Krei. Blobvendeja vojo kaj deponejo blobvendejo ne povas esti ĝisdatigitaj post komenca kreado (ĉiu ajn ĝisdatigo ĉi tie estos ignorita dum reprovizado).
Agordi blobstore sur S3 estas provizita kiel oportuno kaj ne estas parto de la aŭtomatigitaj testoj, kiujn ni faras sur travis. Bonvolu noti, ke stokado sur S3 estas rekomendita nur por okazoj deplojitaj sur AWS.
Kreado Blobvendejoj. La stoka vojo kaj stokado deponejo ne povas esti ĝisdatigitaj post la komenca kreado (ĉiu ajn ĝisdatigo ĉi tie estos ignorita kiam instalita denove).
Agordo de blobstokado sur S3 estas disponigita kiel oportuno. Bonvolu noti, ke S3-stokado estas rekomendita nur por okazoj deplojitaj sur AWS.
Ĉiuj tri deponejoj estas kombinitaj kun la sekvaj defaŭltaj valoroj:
_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 kaj yum-deponejoj:
vidu defaults/main.yml por ĉi tiuj opcioj:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS kaj yum-deponejoj estas malŝaltitaj defaŭlte:
Vidu defaults/main.yml por ĉi tiuj opcioj:
Rezervo ne estos agordita ĝis vi ŝanĝas nexus_backup_configure в true.
En ĉi tiu kazo, la planita skriptotasko estos agordita por funkcii sur Nexus
je la intervalo specifita en nexus_backup_cron (defaŭlte 21:00 ĉiutage).
Vidu [groovy ŝablono por ĉi tiu tasko](templates/backup.groovy.j2) por detaloj.
Ĉi tiu planita tasko estas sendependa de aliaj nexus_scheduled_taskskiun vi
anoncu en via ludlibro.
Se vi volas turni/forigi sekurkopiojn, instalu nexus_backup_rotate: true kaj agordu la nombron da sekurkopioj, kiujn vi ŝatus konservi uzante nexus_backup_keep_rotations (defaŭlte 4).
Kiam vi uzas rotacion, se vi volas ŝpari plian diskospacon dum la rezerva procezo,
Vi povas instali nexus_backup_rotate_first: true. Ĉi tio agordos antaŭrotacion/forigon antaŭ sekurkopio. Defaŭlte, rotacio okazas post kiam sekurkopio estas kreita. Bonvolu noti, ke en ĉi tiu kazo la malnovaj sekurkopioj
estos forigita antaŭ ol la nuna sekurkopio estas farita.
Reakira proceduro
Rulu ludlibron kun parametro -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(ekzemple, 2017-12-17-21-00-00 por la 17-a de decembro 2017 je 21:00
Forigante ligilon
Averto: Ĉi tio tute forigos viajn nunajn datumojn. Nepre faru sekurkopion pli frue se necese
Uzu variablon nexus_purgese vi bezonas rekomenci de nulo kaj reinstali la nexus-instancon kun ĉiuj datumoj forigitaj.
Ŝanĝu pasvorton de administranto post la unua instalado
nexus_default_admin_password: 'admin123'
Ĉi tio ne estu ŝanĝita en via ludlibro. Ĉi tiu variablo estas plenigita per la defaŭlta administra pasvorto de Nexus kiam unue instalita kaj certigas, ke ni povas ŝanĝi la administran pasvorton al nexus_admin_password.
Se vi volas ŝanĝi la pasvorton de administranto post la unua instalado, vi povas provizore ŝanĝi ĝin al la malnova pasvorto de la komandlinio. Post ŝanĝo nexus_admin_password en via ludlibro vi povas ruli: