ProHoster > Blog > administrasie > Installeer en konfigureer Nexus Sonatype deur die infrastruktuur as kodebenadering te gebruik
Installeer en konfigureer Nexus Sonatype deur die infrastruktuur as kodebenadering te gebruik
Sonatype Nexus is 'n geïntegreerde platform waardeur ontwikkelaars Java (Maven)-afhanklikhede, Docker, Python, Ruby, NPM, Bower-beelde, RPM-pakkette, gitlfs, Apt, Go, Nuget kan instaan, stoor en bestuur en hul sagtewaresekuriteit kan versprei.
Hoekom het jy Sonatype Nexus nodig?
Vir die berging van privaat artefakte;
Vir cache artefakte wat van die internet afgelaai word;
Artefakte wat in die basiese Sonatype Nexus-pakket ondersteun word:
Veranderlikes met verstekwaardes (sien default/main.yml):
Algemene veranderlikes
nexus_version: ''
nexus_timezone: 'UTC'
By verstek sal die rol die nuutste beskikbare weergawe van Nexus installeer. Jy kan die weergawe regmaak deur die veranderlike te verander nexus_version. Sien beskikbare weergawes by https://www.sonatype.com/download-oss-sonatype.
As jy na 'n nuwer weergawe verander, sal die rol probeer om jou Nexus-installasie op te dateer.
As jy 'n ouer weergawe van Nexus as die nuutste gebruik, moet jy seker maak dat jy nie kenmerke gebruik wat nie in die geïnstalleerde vrystelling beskikbaar is nie (byvoorbeeld, gasheer vir yum-bewaarplekke is beskikbaar vir nexus groter as 3.8.0, git lfs repo vir nexus groter as 3.3.0, ens.)
nexus timezone is die naam van die Java-tydsone, wat nuttig kan wees in kombinasie met die volgende cron-uitdrukkings vir nexus_scheduled take.
Die poort en kontekspad van die Java-verbindingsproses. nexus_default_context_path moet 'n voorwaartse skuinsstreep bevat wanneer dit gestel is, bv. nexus_default_context_path: '/nexus/'.
Nexus OS-gebruiker en -groep
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Die gebruiker en groep wat gebruik word om Nexus-lêers te besit en die diens te laat loop, sal deur die rol geskep word as een ontbreek.
nexus_os_user_home_dir: '/home/nexus'
Laat toe dat die verstektuisgids vir die Nexus-gebruiker verander word
nexus_data_dir bevat alle konfigurasie, bewaarplekke en afgelaaide artefakte. Pasgemaakte blobstore-paaie nexus_data_dir kan aangepas word, sien hieronder nexus_blobstores.
nexus_tmp_dir bevat alle tydelike lêers. Die verstekpad vir redhat is van geskuif /tmp om potensiële probleme met outomatiese skoonmaakprosedures te oorkom. Sien #168.
Dit is die verstekinstellings vir Nexus. Moet asseblief nie hierdie waardes verander nieAs jy nie gelees het nie nexus stelsel vereistes geheue afdeling en verstaan nie wat hulle doen nie.
As 'n tweede waarskuwing, hier is 'n uittreksel uit die bogenoemde dokument:
Dit word nie aanbeveel om die JVM-hoopgeheue bo die aanbevole waardes te verhoog in 'n poging om prestasie te verbeter nie. Dit kan eintlik die teenoorgestelde uitwerking hê, wat lei tot onnodige werk vir die bedryfstelsel.
Administrateur wagwoord
nexus_admin_password: 'changeme'
Die "admin" rekening wagwoord vir opstelling. Dit werk slegs op die eerste verstekinstallasie. Sien asseblief [Verander admin wagwoord na eerste installasie](# change-admin-password-after-first-install) as jy dit later wil verander deur 'n rol te gebruik.
Dit word sterk aanbeveel om nie jou wagwoord in duidelike teks in die speelboek te stoor nie, maar om [ansible-vault-enkripsie] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (óf inlyn of in 'n aparte lêer gelaai met bv. include_vars)
Anonieme toegang by verstek
nexus_anonymous_access: false
Anonieme toegang is by verstek gedeaktiveer. Lees meer oor anonieme toegang.
Hierdie veranderlikes beheer hoe die rol aan die Nexus API koppel vir voorsiening. Slegs vir gevorderde gebruikers. Jy wil waarskynlik nie hierdie verstekinstellings verander nie
Installeer SSL omgekeerde proxy.
Om dit te doen moet jy httpd installeer. Let wel: wanneer vir httpd_setup_enable stel waardetrue, Nexus kontakte 127.0.0.1:8081, dus geen direk toeganklik is via HTTP-poort 8081 vanaf die eksterne IP-adres.
Die verstekgasheernaam wat gebruik word, is nexus_public_hostname. As jy om een of ander rede verskillende name nodig het, kan jy dit stel httpd_server_name met 'n ander betekenis.
С httpd_copy_ssl_files: true (by verstek) moet die bogenoemde sertifikate in jou speelboekgids bestaan en sal na die bediener gekopieer word en in Apache gekonfigureer word.
As jy bestaande sertifikate op die bediener wil gebruik, installeer httpd_copy_ssl_files: false en verskaf die volgende veranderlikes:
# 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 is opsioneel en moet ongesteld gelaat word as jy nie die kettinglêer wil pasmaak nie
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
Lys voorregte vir instellings. Kyk na die dokumentasie en GUI om te kyk watter veranderlikes gestel moet word, afhangende van die privilegietipe.
Hierdie elemente word gekombineer met die volgende verstekwaardes:
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
Plaaslike (nie-LDAP) gebruikers/rekeningelys om in nexus te skep.
Lys van plaaslike (nie-LDAP) gebruikers/rekeninge om in Nexus te skep.
Ldap kartering van gebruikers/rolle. Staat absent sal rolle van 'n bestaande gebruiker verwyder as een reeds bestaan.
Ldap-gebruikers word nie uitgevee nie. Om 'n rol vir 'n nie-bestaande gebruiker te probeer stel, sal 'n fout tot gevolg hê.
Inhoudkiesers
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Vir meer inligting oor die inhoudkieser, sien Dokumentasie.
Om die inhoudkieser te gebruik, voeg 'n nuwe voorreg by type: repository-content-selector en relevantcontentSelector
Vee die bewaarplekke uit die aanvanklike verstekkonfigurasie van die Nexus-installasie uit. Hierdie stap word slegs uitgevoer met die eerste keer installeer (wanneer nexus_data_dir leeg opgespoor is).
Verwyder bewaarplekke van die verstek verstekopstelling vir Nexus. Hierdie stap word slegs tydens die eerste installasie uitgevoer (wanneer nexus_data_dir leeg).
nexus_delete_default_blobstore: false
Vee die verstek blobstore uit die aanvanklike verstekkonfigurasie van die Nexus-installasie. Dit kan slegs gedoen word indien nexus_delete_default_repos: true en alle gekonfigureerde bewaarplekke (sien hieronder) het 'n eksplisiete blob_store: custom. Hierdie stap word slegs uitgevoer met die eerste keer installeer (wanneer nexus_data_dir leeg opgespoor is).
Die verwydering van blobberging (binêre artefakte) is by verstek gedeaktiveer vanaf die aanvanklike konfigurasie. Skakel af om blobberging (binêre artefakte) te verwyder nexus_delete_default_repos: true. Hierdie stap word slegs tydens die eerste installasie uitgevoer (wanneer nexus_data_dir leeg).
Blobstore te skep. 'n Blobstore-pad en 'n repository blobstore kan nie opgedateer word na aanvanklike skepping nie (enige opdatering hier sal geïgnoreer word by hervoorsiening).
Die opstel van blobstore op S3 word as 'n gerief verskaf en is nie deel van die outomatiese toetse wat ons op travis uitvoer nie. Neem asseblief kennis dat berging op S3 slegs aanbeveel word vir gevalle wat op AWS ontplooi is.
Skepping Blobstore. Die stoorpad en stoorbewaarplek kan nie opgedateer word na die aanvanklike skepping nie (enige opdatering hier sal geïgnoreer word wanneer dit weer geïnstalleer word).
Die opstel van blobberging op S3 word as 'n gerief verskaf. Neem asseblief kennis dat S3-berging slegs aanbeveel word vir gevalle wat op AWS ontplooi is.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven gehuisves bewaarplekke konfigurasie. Negatiewe kaskonfigurasie is opsioneel en sal as verstek die bogenoemde waardes gebruik as dit weggelaat word.
opset gehuisves bewaarplekke Maven. Die negatiewe kaskonfigurasie (-1) is opsioneel en sal die bogenoemde waardes verstek indien nie gespesifiseer nie.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Al drie tipes bewaarplek word gekombineer met die volgende verstekwaardes:
_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
Tipes Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS en yum-bewaarplek:
sien defaults/main.yml vir hierdie opsies:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS en yum-bewaarplekke is by verstek gedeaktiveer:
Sien defaults/main.yml vir hierdie opsies:
Neem asseblief kennis dat jy dalk sekere sekuriteitsbestekke moet aktiveer as jy ander soorte bewaarplekke anders as maven wil gebruik. Dit is by verstek vals
Rugsteun sal nie gekonfigureer word voordat jy oorskakel nie nexus_backup_configure в true.
In hierdie geval sal die geskeduleerde skriptaak gekonfigureer word om op Nexus te loop
met die interval gespesifiseer in nexus_backup_cron (verstek 21:00 elke dag).
Sien [groovy template vir hierdie taak](templates/backup.groovy.j2) vir besonderhede.
Hierdie geskeduleerde taak is onafhanklik van ander nexus_scheduled_taskswat jy
kondig in jou speelboek aan.
As jy rugsteun wil draai/vee, installeer nexus_backup_rotate: true en stel die aantal rugsteune op wat jy wil stoor deur gebruik te maak nexus_backup_keep_rotations (verstek 4).
Wanneer jy rotasie gebruik, as jy bykomende skyfspasie wil bespaar tydens die rugsteunproses,
U kan installeer nexus_backup_rotate_first: true. Dit sal voorafrotasie/uitvee voor rugsteun konfigureer. By verstek vind rotasie plaas nadat 'n rugsteun geskep is. Neem asseblief kennis dat in hierdie geval die ou rugsteun
sal uitgevee word voordat die huidige rugsteun gemaak word.
Herstelprosedure
Begin speelboek met parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(byvoorbeeld, 2017-12-17-21-00-00 vir 17 Desember 2017 om 21:00
Verwyder tans nexus
Waarskuwing: Dit sal jou huidige data heeltemal uitvee. Maak seker dat u vroeër 'n rugsteun maak indien nodig
Gebruik 'n veranderlike nexus_purgeas jy van nuuts af moet herbegin en die nexus-instansie weer installeer met alle data verwyder.
Verander administrateur wagwoord na die eerste installasie
nexus_default_admin_password: 'admin123'
Dit moet nie in jou speelboek verander word nie. Hierdie veranderlike word gevul met die verstek Nexus admin wagwoord wanneer dit die eerste keer geïnstalleer is en verseker dat ons die admin wagwoord kan verander na nexus_admin_password.
As u die administrateurwagwoord na die eerste installasie wil verander, kan u dit tydelik vanaf die opdragreël na die ou wagwoord verander. Na verandering nexus_admin_password in jou speelboek kan jy hardloop: