ProHoster > Blogi > antaminen > Nexus Sonatypen asentaminen ja määrittäminen infrastruktuurin avulla koodimenetelmänä
Nexus Sonatypen asentaminen ja määrittäminen infrastruktuurin avulla koodimenetelmänä
Sonatype Nexus on integroitu alusta, jonka kautta kehittäjät voivat välityspalvelinta, tallentaa ja hallita Java (Maven) -riippuvuuksia, Docker-, Python-, Ruby-, NPM-, Bower-kuvia, RPM-paketteja, gitlfs-, Apt-, Go-, Nuget-tiedostoja ja jakaa ohjelmistoturvallisuuttaan.
Esimerkki mahdollistavasta ohjekirjasta nexuksen asentamiseen ilman LDAP:ta Mavenin (java), Dockerin, Pythonin, Rubyn, NPM:n, Bowerin, RPM:n ja gitlfs-tietovarastojen kanssa.
Oletuksena rooli asentaa uusimman saatavilla olevan Nexuksen version. Voit korjata version vaihtamalla muuttujaa nexus_version. Katso saatavilla olevat versiot osoitteessa https://www.sonatype.com/download-oss-sonatype.
Jos vaihdat uudempaan versioon, rooli yrittää päivittää Nexus-asennuksesi.
Jos käytät Nexuksen vanhempaa versiota kuin uusin, sinun tulee varmistaa, että et käytä ominaisuuksia, jotka eivät ole saatavilla asennetussa julkaisussa (esimerkiksi yum-tietovarastojen isännöinti on saatavilla versiolle 3.8.0, git lfs repo nexusille, joka on suurempi kuin 3.3.0 jne.)
nexus timezone on Java-aikavyöhykkeen nimi, joka voi olla hyödyllinen yhdessä seuraavien cron-lausekkeiden kanssa nexus_scheduled-tehtävissä.
Java-yhteysprosessin portti ja kontekstipolku. nexus_default_context_path tulee sisältää vinoviiva, kun se on asetettu, esim. nexus_default_context_path: '/nexus/'.
Nexus OS -käyttäjä ja -ryhmä
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Nexus-tiedostojen omistamiseen ja palvelun suorittamiseen käytetty käyttäjä ja ryhmä luodaan roolin mukaan, jos sellainen puuttuu.
nexus_os_user_home_dir: '/home/nexus'
Salli oletuskotihakemiston muuttaminen nexus-käyttäjälle
nexus_installation_dir sisältää asennetut suoritettavat tiedostot
nexus_data_dir sisältää kaikki asetukset, arkistot ja ladatut artefaktit. Mukautetut blobstore-polut nexus_data_dir voidaan mukauttaa, katso alla nexus_blobstores.
nexus_tmp_dir sisältää kaikki väliaikaiset tiedostot. Redhatin oletuspolku on siirretty /tmp automaattisten puhdistustoimenpiteiden mahdollisten ongelmien ratkaisemiseksi. Katso #168.
Toisena varoituksena tässä on ote yllä olevasta asiakirjasta:
Ei ole suositeltavaa kasvattaa JVM-keon muistia suositeltujen arvojen yläpuolelle suorituskyvyn parantamiseksi. Tällä voi itse asiassa olla päinvastainen vaikutus, mikä johtaa tarpeettomasti käyttöjärjestelmään.
Järjestelmänvalvojan salasana
nexus_admin_password: 'changeme'
Järjestelmänvalvojan tilin salasana määritystä varten. Tämä toimii vain ensimmäisessä oletusasennuksessa. Katso [Vaihda järjestelmänvalvojan salasana ensimmäisen asennuksen jälkeen](# change-admin-password-af-first-install), jos haluat vaihtaa sen myöhemmin roolin avulla.
On erittäin suositeltavaa olla tallentamatta salasanaa selkeänä tekstinä pelikirjaan, vaan käyttää [ansible-vault-salausta] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (joko rivissä tai erillisessä tiedostossa, johon on ladattu esim. include_vars)
Anonyymi pääsy oletuksena
nexus_anonymous_access: false
Anonyymi pääsy on oletusarvoisesti poissa käytöstä. Lue lisää aiheesta anonyymi pääsy.
Nämä muuttujat ohjaavat sitä, miten rooli muodostaa yhteyden Nexus API:hen hallintaa varten. Vain kokeneille käyttäjille. Et todennäköisesti halua muuttaa näitä oletusasetuksia
Asettaa SSL-käänteinen välityspalvelin.
Tätä varten sinun on asennettava httpd. Huomautus: milloin httpd_setup_enable aseta arvotrue, nexus-kontaktit 127.0.0.1:8081, joten ei pääsee suoraan HTTP-portin 8081 kautta ulkoisesta IP-osoitteesta.
Käytetty oletusisäntänimi on nexus_public_hostname. Jos tarvitset jostain syystä erilaisia nimiä, voit asettaa httpd_server_name eri merkityksellä.
С httpd_copy_ssl_files: true (oletusarvoisesti) yllä olevien varmenteiden pitäisi olla pelikirjahakemistossasi, ja ne kopioidaan palvelimelle ja määritetään apachessa.
Jos haluat käyttää palvelimella olemassa olevia varmenteita, asenna httpd_copy_ssl_files: false ja anna seuraavat muuttujat:
# 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 on valinnainen ja se tulee jättää asettamatta, jos et halua mukauttaa ketjutiedostoa
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 etuoikeuksia asetuksille. Katso dokumentaatiosta ja käyttöliittymästä, mitkä muuttujat on asetettava käyttöoikeustyypistä riippuen.
Nämä elementit yhdistetään seuraaviin oletusarvoihin:
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
Paikalliset (ei-LDAP) käyttäjät/tilit luotava nexuksessa.
Luettelo paikallisista (ei-LDAP-) käyttäjistä/tileistä, jotka luodaan Nexuksessa.
Käyttäjien/roolien Ldap-kartoitus. Osavaltio absent poistaa roolit olemassa olevalta käyttäjältä, jos se on jo olemassa.
Ldap-käyttäjiä ei poisteta. Roolin asettaminen olemattomalle käyttäjälle johtaa virheeseen.
Sisällön valitsijat
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Lisätietoja sisällönvalitsimesta on kohdassa Dokumentointi.
Jos haluat käyttää sisällönvalitsinta, lisää uusi käyttöoikeus type: repository-content-selector ja asiaankuuluvaacontentSelector
Poista arkistot nexus-asennuksen alkuperäisestä oletuskokoonpanosta. Tämä vaihe suoritetaan vain ensimmäisen asennuksen yhteydessä (kun nexus_data_dir on havaittu tyhjäksi).
Poistetaan arkistot Nexuksen oletusasetuksista. Tämä vaihe suoritetaan vain ensimmäisen asennuksen aikana (kun nexus_data_dir tyhjä).
nexus_delete_default_blobstore: false
Poista oletusblobstore nexus-asennuksen alkuperäisestä oletuskokoonpanosta. Tämä voidaan tehdä vain, jos nexus_delete_default_repos: true ja kaikissa määritetyissä arkistoissa (katso alla) on eksplisiittinen blob_store: custom. Tämä vaihe suoritetaan vain ensimmäisen asennuksen yhteydessä (kun nexus_data_dir on havaittu tyhjäksi).
Blob-tallennustilan (binaariset artefaktit) poistaminen on oletusarvoisesti poistettu käytöstä alkuperäisestä määrityksestä. Poista blob-tallennustila (binääriartefaktit) sammuttamalla nexus_delete_default_repos: true. Tämä vaihe suoritetaan vain ensimmäisen asennuksen aikana (kun nexus_data_dir tyhjä).
Blobstores luoda. Blobstore-polkua ja arkiston blobstorea ei voi päivittää alkuperäisen luomisen jälkeen (kaikki päivitykset jätetään huomioimatta, kun niitä valmistellaan uudelleen).
Blobstoren määrittäminen S3:ssa tarjotaan käyttömukavuuden vuoksi, eikä se ole osa travisin suorittamia automaattisia testejä. Huomaa, että tallentamista S3:lle suositellaan vain tapauksille, jotka on otettu käyttöön AWS:ssä.
Luominen Blobstores. Tallennuspolkua ja tallennusvarastoa ei voi päivittää alkuperäisen luomisen jälkeen (kaikki päivitykset jätetään huomioimatta, kun ne asennetaan uudelleen).
Blob-tallennustilan määrittäminen S3:ssa on helpompaa. Huomaa, että S3-tallennustilaa suositellaan vain tapauksille, jotka on otettu käyttöön AWS:ssä.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Maven isännöidyt arkistot kokoonpano. Negatiivinen välimuistin konfigurointi on valinnainen, ja oletuksena on yllä olevat arvot, jos ne jätetään pois.
kokoonpano isännöidyt arkistot Maven. Negatiivinen välimuistin määritys (-1) on valinnainen, ja se käyttää oletuksena yllä olevia arvoja, jos niitä ei ole määritetty.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Kaikki kolme arkistotyyppiä yhdistetään seuraaviin oletusarvoihin:
_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 ja yum arkistotyypit:
nähdä defaults/main.yml näille vaihtoehdoille:
Docker-, Pypi-, Raw-, Rubygems-, Bower-, NPM-, Git-LFS- ja yum-arkistot ovat oletusarvoisesti poissa käytöstä:
Nähdä defaults/main.yml näille vaihtoehdoille:
Huomaa, että saatat joutua ottamaan käyttöön tietyt suojausalueet, jos haluat käyttää muun tyyppisiä tietovarastoja kuin maven. Tämä on oletuksena epätosi
Varmuuskopiointia ei määritetä ennen kuin vaihdat nexus_backup_configure в true.
Tässä tapauksessa ajoitettu komentosarjatehtävä määritetään toimimaan Nexuksessa
kohdassa määritellyllä aikavälillä nexus_backup_cron (oletus 21:00 joka päivä).
Katso lisätietoja kohdasta [groovy-malli tälle tehtävälle](templates/backup.groovy.j2).
Tämä ajoitettu tehtävä on riippumaton muista nexus_scheduled_tasksjonka sinä
ilmoittaa pelikirjassasi.
Jos haluat kiertää/poistaa varmuuskopioita, asenna nexus_backup_rotate: true ja määritä varmuuskopioiden määrä, joita haluat käyttää nexus_backup_keep_rotations (oletus 4).
Kun käytät kiertoa ja haluat säästää lisää levytilaa varmuuskopiointiprosessin aikana,
Voit asentaa nexus_backup_rotate_first: true. Tämä määrittää esikierron/poiston ennen varmuuskopiointia. Oletusarvoisesti kierto tapahtuu varmuuskopion luomisen jälkeen. Huomaa, että tässä tapauksessa vanhat varmuuskopiot
poistetaan ennen nykyisen varmuuskopion tekemistä.
Palautusmenettely
Suorita ohjekirja parametrilla -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(esimerkiksi 2017-12-17-21-00-00 17. joulukuuta 2017 klo 21:00
Nexuksen poistaminen
Varoitus: Tämä poistaa nykyiset tietosi kokonaan. Muista tehdä varmuuskopio tarvittaessa aikaisemmin
Käytä muuttujaa nexus_purgejos sinun on käynnistettävä uudelleen alusta ja asennettava nexus-instanssi uudelleen poistamalla kaikki tiedot.
Vaihda järjestelmänvalvojan salasana ensimmäisen asennuksen jälkeen
nexus_default_admin_password: 'admin123'
Tätä ei pidä muuttaa pelikirjassasi. Tämä muuttuja täytetään Nexus-järjestelmänvalvojan oletussalasanalla ensimmäisen asennuksen yhteydessä ja varmistaa, että voimme muuttaa järjestelmänvalvojan salasanaksi nexus_admin_password.
Jos haluat vaihtaa järjestelmänvalvojan salasanan ensimmäisen asennuksen jälkeen, voit vaihtaa sen väliaikaisesti vanhaan salasanaan komentoriviltä. Vaihdon jälkeen nexus_admin_password pelikirjassasi voit ajaa: