ProHoster > blog > Gweinyddiaeth > Gosod a ffurfweddu Sonatype Nexus gan ddefnyddio'r seilwaith fel dull cod
Gosod a ffurfweddu Sonatype Nexus gan ddefnyddio'r seilwaith fel dull cod
Mae Sonatype Nexus yn blatfform integredig lle gall datblygwyr ddirprwyo, storio a rheoli dibyniaethau Java (Maven), Docker, Python, Ruby, NPM, delweddau Bower, pecynnau RPM, gitlfs, Apt, Go, Nuget, a dosbarthu eu diogelwch meddalwedd.
Pam mae angen Sonatype Nexus arnoch chi?
Ar gyfer storio arteffactau preifat;
Ar gyfer caching arteffactau sy'n cael eu llwytho i lawr o'r Rhyngrwyd;
Arteffactau a gefnogir yn y pecyn Sonatype Nexus sylfaenol:
Newidynnau gyda gwerthoedd diofyn (gweler default/main.yml):
Newidynnau cyffredinol
nexus_version: ''
nexus_timezone: 'UTC'
Yn ddiofyn, bydd y rôl yn gosod y fersiwn ddiweddaraf o Nexus sydd ar gael. Gallwch drwsio'r fersiwn trwy newid y newidyn nexus_version. Gweler y fersiynau sydd ar gael yn https://www.sonatype.com/download-oss-sonatype.
Os byddwch yn newid i fersiwn mwy diweddar, bydd y rôl yn ceisio diweddaru eich gosodiad Nexus.
Os ydych chi'n defnyddio fersiwn hŷn o Nexus na'r diweddaraf, dylech sicrhau nad ydych yn defnyddio nodweddion nad ydynt ar gael yn y datganiad gosod (er enghraifft, mae cynnal ystorfeydd yum ar gael ar gyfer nexus sy'n fwy na 3.8.0, git lfs repo ar gyfer nexus sy'n fwy na 3.3.0 ac ati)
nexus timezone yw enw parth amser Java, a all fod yn ddefnyddiol mewn cyfuniad â'r ymadroddion cron canlynol ar gyfer tasgau nexus_scheduled.
Llwybr porthladd a chyd-destun y broses gysylltu Java. nexus_default_context_path rhaid iddo gynnwys blaenslaes pan gaiff ei osod, e.e.: nexus_default_context_path: '/nexus/'.
Defnyddiwr a Grŵp Nexus OS
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Bydd y defnyddiwr a'r grŵp a ddefnyddir i fod yn berchen ar ffeiliau Nexus a rhedeg y gwasanaeth yn cael eu creu gan y rôl os oes un ar goll.
nexus_os_user_home_dir: '/home/nexus'
Caniatáu newid y cyfeiriadur cartref rhagosodedig ar gyfer y defnyddiwr nexus
nexus_installation_dir yn cynnwys ffeiliau gweithredadwy gosod
nexus_data_dir yn cynnwys yr holl gyfluniad, ystorfeydd ac arteffactau wedi'u llwytho i lawr. Llwybrau blobstore personol nexus_data_dir gellir ei addasu, gweler isod nexus_blobstores.
nexus_tmp_dir yn cynnwys yr holl ffeiliau dros dro. Mae'r llwybr rhagosodedig ar gyfer redhat wedi'i symud ohono /tmp i oresgyn problemau posibl gyda gweithdrefnau glanhau awtomatig. Gweler #168.
Dyma'r gosodiadau diofyn ar gyfer Nexus. Peidiwch â newid y gwerthoedd hynOs nad ydych wedi darllen adran cof gofynion system nexus a ddim yn deall beth maen nhw'n ei wneud.
Fel ail rybudd, dyma ddyfyniad o'r ddogfen uchod:
Ni argymhellir cynyddu cof pentwr JVM y tu hwnt i'r gwerthoedd a argymhellir mewn ymgais i wella perfformiad. Gall hyn mewn gwirionedd gael yr effaith groes, gan arwain at waith diangen i'r system weithredu.
Cyfrinair gweinyddwr
nexus_admin_password: 'changeme'
Cyfrinair y cyfrif “gweinyddol” ar gyfer gosod. Dim ond ar y gosodiad rhagosodedig cyntaf y mae hyn yn gweithio. Gweler [Newid cyfrinair gweinyddol ar ôl y gosodiad cyntaf](# change-admin-password-after-first-install) os ydych am ei newid yn ddiweddarach gan ddefnyddio rôl.
Argymhellir yn gryf i beidio â storio'ch cyfrinair fel testun clir yn y llyfr chwarae, ond i ddefnyddio [amgryptio ansible-vault] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (naill ai mewn llinell neu mewn ffeil ar wahân wedi'i llwytho ag e.e. include_vars)
Mynediad dienw yn ddiofyn
nexus_anonymous_access: false
Mae mynediad dienw wedi'i analluogi yn ddiofyn. Darllenwch fwy am mynediad dienw.
Mae'r newidynnau hyn yn rheoli sut mae'r rôl yn cysylltu â'r API Nexus ar gyfer darparu. Ar gyfer defnyddwyr uwch yn unig. Mae'n debyg nad ydych chi am newid y gosodiadau diofyn hyn
Gosod SSL Reverse Proxy.
I wneud hyn mae angen i chi osod httpd. Nodyn: pryd ar gyfer httpd_setup_enable gwerth gosodtrue, cysylltiadau nexus 127.0.0.1:8081, felly dim bod yn hygyrch yn uniongyrchol trwy borthladd HTTP 8081 o'r cyfeiriad IP allanol.
Yr enw gwesteiwr rhagosodedig a ddefnyddir yw nexus_public_hostname. Os oes angen enwau gwahanol arnoch am ryw reswm, gallwch chi osod httpd_server_name ag ystyr gwahanol.
С httpd_copy_ssl_files: true (yn ddiofyn) dylai'r tystysgrifau uchod fodoli yn eich cyfeiriadur llyfr chwarae a byddant yn cael eu copïo i'r gweinydd a'u ffurfweddu mewn apache.
Os ydych chi am ddefnyddio tystysgrifau presennol ar y gweinydd, gosodwch httpd_copy_ssl_files: false a darparu'r newidynnau canlynol:
# 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 yn ddewisol a dylid ei adael heb ei osod os nad ydych am addasu'r ffeil gadwyn
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
Rhestr breintiau ar gyfer gosodiadau. Edrychwch ar y ddogfennaeth a'r GUI i wirio pa newidynnau sydd angen eu gosod yn dibynnu ar y math o fraint.
Cyfunir yr elfennau hyn â'r gwerthoedd rhagosodedig canlynol:
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
Rhestr o ddefnyddwyr/cyfrifon lleol (nad ydynt yn LDAP) i'w creu mewn cysylltiad.
Rhestr o ddefnyddwyr/cyfrifon lleol (nad ydynt yn LDAP) i'w creu yn Nexus.
Ldap yn mapio defnyddwyr/rolau. Cyflwr absent yn dileu rolau defnyddiwr presennol os oes un yn bodoli eisoes.
Nid yw defnyddwyr ldap yn cael eu dileu. Bydd ceisio gosod rôl ar gyfer defnyddiwr nad yw'n bodoli yn arwain at wall.
Dewiswyr cynnwys
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Am ragor o wybodaeth am y dewisydd cynnwys, gweler Dogfennaeth.
I ddefnyddio'r dewisydd cynnwys, ychwanegwch fraint newydd gyda type: repository-content-selector ac yn berthnasolcontentSelector
Dileu'r ystorfeydd o'r nexus gosod cyfluniad rhagosodedig cychwynnol. Dim ond wrth osod am y tro cyntaf y gweithredir y cam hwn (pryd nexus_data_dir wedi'i ganfod yn wag).
Tynnu ystorfeydd o'r cyfluniad rhagosodedig ar gyfer Nexus. Dim ond yn ystod y gosodiad cyntaf y cyflawnir y cam hwn (pryd nexus_data_dir wag).
nexus_delete_default_blobstore: false
Dileu'r blobstore rhagosodedig o'r nexus gosod cyfluniad rhagosodedig cychwynnol. Gellir gwneud hyn dim ond os nexus_delete_default_repos: true ac mae gan bob cadwrfa sydd wedi'i ffurfweddu (gweler isod) enghraifft benodol blob_store: custom. Dim ond wrth osod am y tro cyntaf y gweithredir y cam hwn (pryd nexus_data_dir wedi'i ganfod yn wag).
Mae tynnu storfa blobiau (arteffactau deuaidd) wedi'i analluogi'n ddiofyn o'r ffurfweddiad cychwynnol. I gael gwared ar storfa blob (arteffactau deuaidd), trowch i ffwrdd nexus_delete_default_repos: true. Dim ond yn ystod y gosodiad cyntaf y cyflawnir y cam hwn (pryd nexus_data_dir wag).
Blobstores i greu. Ni ellir diweddaru llwybr blobstore a storfa blobstore ar ôl creu cychwynnol (bydd unrhyw ddiweddariad yma yn cael ei anwybyddu wrth ail-ddarparu).
Darperir ffurfweddu blobstore ar S3 fel cyfleustra ac nid yw'n rhan o'r profion awtomataidd rydym yn eu cynnal ar travis. Sylwch mai dim ond ar gyfer achosion a ddefnyddir ar AWS yr argymhellir storio ar S3.
Creu Blobstores. Ni ellir diweddaru'r llwybr storio a'r storfa storio ar ôl y greadigaeth gychwynnol (bydd unrhyw ddiweddariad yma yn cael ei anwybyddu wrth ei osod eto).
Mae sefydlu storfa blob ar S3 yn cael ei ddarparu fel cyfleustra. Sylwch mai dim ond ar gyfer achosion a ddefnyddir ar AWS y mae storfa S3 yn cael ei hargymell.
Mae'r tri math o gadwrfa wedi'u cyfuno â'r gwerthoedd rhagosodedig canlynol:
_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
Mathau o gadwrfeydd Dociwr, Pypi, Amrwd, Rubygems, Bower, NPM, Git-LFS a yum:
gweld defaults/main.yml ar gyfer yr opsiynau hyn:
Mae storfeydd Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ac yum wedi'u hanalluogi yn ddiofyn:
Gweler defaults/main.yml ar gyfer yr opsiynau hyn:
Sylwch efallai y bydd angen i chi alluogi rhai cwmpasau diogelwch os ydych am ddefnyddio mathau eraill o gadwrfeydd heblaw maven. Mae hyn yn ffug yn ddiofyn
Ni fydd copi wrth gefn yn cael ei ffurfweddu nes i chi newid nexus_backup_configure в true.
Yn yr achos hwn, bydd y dasg sgript a drefnwyd yn cael ei ffurfweddu i redeg ar Nexus
ar y cyfwng a nodir yn nexus_backup_cron (diofyn 21:00 bob dydd).
Gweler [templed groovy ar gyfer y dasg hon] (templedi/backup.groovy.j2) am fanylion.
Mae'r dasg hon a drefnwyd yn annibynnol ar eraill nexus_scheduled_tasksyr ydych
cyhoeddi yn eich llyfr chwarae.
Os ydych chi am gylchdroi / dileu copïau wrth gefn, gosodwch nexus_backup_rotate: true a ffurfweddu nifer y copïau wrth gefn yr hoffech chi arbed eu defnyddio nexus_backup_keep_rotations (diofyn 4).
Wrth ddefnyddio cylchdro, os ydych chi am arbed lle disg ychwanegol yn ystod y broses wrth gefn,
Gallwch chi osod nexus_backup_rotate_first: true. Bydd hyn yn ffurfweddu rhag-gylchdroi/dileu cyn gwneud copi wrth gefn. Yn ddiofyn, mae cylchdroi yn digwydd ar ôl creu copi wrth gefn. Sylwch fod yr hen gopïau wrth gefn yn yr achos hwn
yn cael ei ddileu cyn i'r copi wrth gefn cyfredol gael ei wneud.
Gweithdrefn adfer
Rhedeg llyfr chwarae gyda pharamedr -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(er enghraifft, 2017-12-17-21-00-00 ar gyfer Rhagfyr 17, 2017 am 21:00
Cael gwared ar nexus
Rhybudd: Bydd hyn yn dileu eich data cyfredol yn llwyr. Gwnewch yn siŵr eich bod yn gwneud copi wrth gefn yn gynharach os oes angen
Defnyddiwch newidyn nexus_purgeos oes angen i chi ailgychwyn o'r dechrau ac ailosod yr enghraifft nexus gyda'r holl ddata wedi'i dynnu.
Ni ddylid newid hyn yn eich llyfr chwarae. Mae'r newidyn hwn yn cynnwys y cyfrinair gweinyddol Nexus rhagosodedig pan gaiff ei osod gyntaf ac mae'n sicrhau y gallwn newid y cyfrinair gweinyddol i nexus_admin_password.
Os ydych chi am newid cyfrinair y gweinyddwr ar ôl y gosodiad cyntaf, gallwch ei newid dros dro i'r hen gyfrinair o'r llinell orchymyn. Ar ôl newid nexus_admin_password yn eich llyfr chwarae gallwch redeg: