„Nexus Sonatype“ diegimas ir konfigūravimas naudojant infrastruktūrą kaip kodo metodą
„Sonatype Nexus“ yra integruota platforma, per kurią kūrėjai gali naudoti tarpinį serverį, saugoti ir valdyti „Java“ (Maven) priklausomybes, „Docker“, „Python“, „Ruby“, NPM, „Bower“ vaizdus, RPM paketus, „gitlfs“, „Apt“, „Go“, „Nuget“ ir platinti savo programinės įrangos apsaugą.
Kodėl jums reikia „Sonatype Nexus“?
Privačių artefaktų saugojimui;
Iš interneto atsisiunčiamiems artefaktams saugoti talpykloje;
Kintamieji su numatytosiomis reikšmėmis (žr default/main.yml):
Bendrieji kintamieji
nexus_version: ''
nexus_timezone: 'UTC'
Pagal numatytuosius nustatymus vaidmuo įdiegs naujausią galimą „Nexus“ versiją. Galite pataisyti versiją pakeisdami kintamąjį nexus_version. Peržiūrėkite galimas versijas adresu https://www.sonatype.com/download-oss-sonatype.
Jei pakeisite į naujesnę versiją, vaidmuo bandys atnaujinti „Nexus“ diegimą.
Jei naudojate senesnę nei naujausią „Nexus“ versiją, įsitikinkite, kad nenaudojate funkcijų, kurių nėra įdiegtame leidime (pvz., „yum“ saugyklų priegloba pasiekiama naujesnėms nei 3.8.0 versijoms „Nexus“, git lfs repo jei nexus yra didesnis nei 3.3.0 ir pan.)
nexus timezone yra Java laiko juostos pavadinimas, kuris gali būti naudingas kartu su šiomis cron išraiškomis atliekant nexus_scheduled užduotis.
„Java“ ryšio proceso prievadas ir kontekstinis kelias. nexus_default_context_path turi būti pasvirasis brūkšnys, kai jis nustatytas, pvz.: nexus_default_context_path: '/nexus/'.
„Nexus OS“ naudotojas ir grupė
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Vartotojas ir grupė, kuriems priklausė „Nexus“ failai ir paleido paslaugą, bus sukurti pagal vaidmenį, jei jo trūksta.
nexus_os_user_home_dir: '/home/nexus'
Leisti pakeisti numatytąjį „Nexus“ naudotojo namų katalogą
nexus_installation_dir yra įdiegti vykdomieji failai
nexus_data_dir yra visa konfigūracija, saugyklos ir atsisiųsti artefaktai. Tinkinti blobstore keliai nexus_data_dir galima pritaikyti, žiūrėkite žemiau nexus_blobstores.
nexus_tmp_dir yra visi laikinieji failai. Numatytasis redhat kelias buvo perkeltas iš /tmp pašalinti galimas automatinio valymo procedūrų problemas. Žiūrėkite #168.
Kaip antras įspėjimas, čia yra ištrauka iš anksčiau pateikto dokumento:
Nerekomenduojama didinti JVM krūvos atminties viršijant rekomenduojamas vertes, siekiant pagerinti našumą. Tai iš tikrųjų gali turėti priešingą efektą, todėl operacinė sistema gali dirbti be reikalo.
Administratoriaus slaptažodis
nexus_admin_password: 'changeme'
Sąrankos „administratoriaus“ paskyros slaptažodis. Tai veikia tik pirmą kartą įdiegus numatytuosius nustatymus. Jei norite jį pakeisti vėliau naudodami vaidmenį, žr. [Keisti administratoriaus slaptažodį po pirmojo diegimo] (# change-admin-password-af-first-install).
Primygtinai rekomenduojama nesaugoti slaptažodžio aiškiu tekstu žaidimo knygelėje, o naudoti [ansible-vault šifravimą] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (įterptoje arba atskirame faile, įkeltame, pvz., include_vars)
Anoniminė prieiga pagal numatytuosius nustatymus
nexus_anonymous_access: false
Anoniminė prieiga išjungta pagal numatytuosius nustatymus. Skaityti daugiau apie anoniminė prieiga.
Šie kintamieji valdo, kaip vaidmuo prisijungia prie „Nexus“ API, kad būtų galima teikti. Tik pažengusiems vartotojams. Tikriausiai nenorite keisti šių numatytųjų nustatymų
Nustatyti SSL atvirkštinis tarpinis serveris.
Norėdami tai padaryti, turite įdiegti httpd. Pastaba: kada httpd_setup_enable nustatyta vertėtrue, nexus kontaktai 127.0.0.1:8081, taigi ne yra tiesiogiai pasiekiamas per HTTP prievadą 8081 iš išorinio IP adreso.
Naudojamas numatytasis pagrindinio kompiuterio pavadinimas yra nexus_public_hostname. Jei dėl kokių nors priežasčių jums reikia skirtingų pavadinimų, galite nustatyti httpd_server_name su kita prasme.
С httpd_copy_ssl_files: true (pagal numatytuosius nustatymus) aukščiau pateikti sertifikatai turėtų būti jūsų žaidimų knygos kataloge ir bus nukopijuoti į serverį ir sukonfigūruoti apache.
Jei norite naudoti esamus sertifikatus serveryje, įdiekite httpd_copy_ssl_files: false ir pateikite šiuos kintamuosius:
# 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 yra neprivalomas ir turėtų būti nenustatytas, jei nenorite tinkinti grandinės failo
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
Sąrašas privilegijų nustatymams. Peržiūrėkite dokumentaciją ir GUI, kad patikrintumėte, kuriuos kintamuosius reikia nustatyti atsižvelgiant į privilegijų tipą.
Šie elementai derinami su šiomis numatytosiomis reikšmėmis:
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
Vietinių (ne LDAP) naudotojų / paskyrų sąrašas, kurį reikia sukurti „Nexus“.
Vietinių (ne LDAP) naudotojų / paskyrų, kurias reikia sukurti „Nexus“, sąrašas.
Ldap vartotojų / vaidmenų atvaizdavimas. valstybė absent pašalins esamo vartotojo vaidmenis, jei toks jau yra.
Ldap vartotojai neištrinami. Bandant nustatyti vaidmenį neegzistuojančiam vartotojui, atsiras klaida.
Turinio parinkikliai
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Daugiau informacijos apie turinio parinkiklį žr Dokumentacija.
Norėdami naudoti turinio parinkiklį, pridėkite naują privilegiją su type: repository-content-selector ir aktualuscontentSelector
Ištrinkite saugyklas iš pradinės numatytosios „Nexus“ diegimo konfigūracijos. Šis veiksmas vykdomas tik pirmą kartą įdiegus (kai nexus_data_dir buvo aptiktas tuščias).
Saugyklų pašalinimas iš numatytosios numatytosios „Nexus“ konfigūracijos. Šis veiksmas atliekamas tik pirmojo diegimo metu (kai nexus_data_dir tuščia).
nexus_delete_default_blobstore: false
Ištrinkite numatytąją „blobstore“ iš pradinės numatytosios „Nexus“ diegimo konfigūracijos. Tai galima padaryti tik tuo atveju, jei nexus_delete_default_repos: true ir visos sukonfigūruotos saugyklos (žr. toliau) turi aiškų blob_store: custom. Šis veiksmas vykdomas tik pirmą kartą įdiegus (kai nexus_data_dir buvo aptiktas tuščias).
Blob saugyklos (dvejetainių artefaktų) pašalinimas pagal numatytuosius nustatymus išjungtas iš pradinės konfigūracijos. Norėdami pašalinti blob saugyklą (dvejetainius artefaktus), išjunkite nexus_delete_default_repos: true. Šis veiksmas atliekamas tik pirmojo diegimo metu (kai nexus_data_dir tuščia).
Blobstores sukurti. Blobstore kelias ir saugyklos blobstore negali būti atnaujinami po pirminio sukūrimo (bet koks čia atliktas naujinimas bus ignoruojamas atliekant pakartotinį aprūpinimą).
„Blobstore“ konfigūravimas S3 yra patogus ir nėra automatinių testų, kuriuos atliekame „travis“, dalis. Atkreipkite dėmesį, kad saugoti S3 rekomenduojama tik tais atvejais, kurie yra įdiegti AWS.
Kūrimas Blobstores. Saugyklos kelias ir saugykla negali būti atnaujinami po pirminio sukūrimo (bet koks čia esantis naujinimas bus ignoruojamas, kai bus įdiegtas dar kartą).
S3 „blob“ saugyklos nustatymas yra patogus. Atminkite, kad S3 saugykla rekomenduojama tik AWS įdiegtiems atvejams.
Aukščiau pateiktas konfigūracijos pavyzdys tarpinis serveris Mavenas.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Specialistė priglobtos saugyklos konfigūracija. Neigiama talpyklos konfigūracija yra neprivaloma ir bus numatytos pirmiau nurodytos reikšmės, jei jos praleistos.
Konfigūravimas priglobtos saugyklos Maven. Neigiama talpyklos konfigūracija (-1) yra neprivaloma ir, jei nenurodyta, bus numatytos pirmiau nurodytos reikšmės.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Visi trys saugyklų tipai derinami su šiomis numatytosiomis reikšmėmis:
_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 ir yum saugyklų tipai:
matyti defaults/main.yml šioms parinktims:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS ir yum saugyklos pagal numatytuosius nustatymus yra išjungtos:
pamatyti defaults/main.yml šioms parinktims:
Atminkite, kad gali reikėti įjungti tam tikras saugos sritis, jei norite naudoti kitų tipų saugyklas, išskyrus „maven“. Pagal numatytuosius nustatymus tai klaidinga
Atsarginė kopija nebus sukonfigūruota, kol neperjungsite nexus_backup_configure в true.
Tokiu atveju suplanuota scenarijaus užduotis bus sukonfigūruota vykdyti „Nexus“.
punkte nurodytu intervalu nexus_backup_cron (numatytasis 21:00 kiekvieną dieną).
Daugiau informacijos rasite [groovy šablonas šiai užduočiai] (templates/backup.groovy.j2).
Ši suplanuota užduotis nepriklauso nuo kitų nexus_scheduled_taskskuris tu
paskelbti savo žaidimų knygoje.
Jei norite pasukti / ištrinti atsargines kopijas, įdiekite nexus_backup_rotate: true ir sukonfigūruokite atsarginių kopijų, kurias norite išsaugoti, skaičių nexus_backup_keep_rotations (numatytasis 4).
Jei naudojate sukimąsi ir norite sutaupyti papildomos vietos diske atsarginės kopijos kūrimo metu,
Galite įdiegti nexus_backup_rotate_first: true. Tai sukonfigūruos išankstinį pasukimą / ištrynimą prieš sukuriant atsarginę kopiją. Pagal numatytuosius nustatymus sukimas vyksta po to, kai sukuriama atsarginė kopija. Atkreipkite dėmesį, kad šiuo atveju senos atsarginės kopijos
bus ištrinti prieš darant dabartinę atsarginę kopiją.
Atkūrimo procedūra
Paleiskite žaidimų knygą su parametru -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(pvz., 2017-12-17-21-00-00 17 m. gruodžio 2017 d. 21:00 val.
Nexus pašalinimas
Įspėjimas: tai visiškai ištrins dabartinius duomenis. Jei reikia, būtinai pasidarykite atsarginę kopiją anksčiau
Naudokite kintamąjį nexus_purgejei reikia paleisti iš naujo nuo nulio ir iš naujo įdiegti nexus egzempliorių pašalinus visus duomenis.
Pirmą kartą įdiegę pakeiskite administratoriaus slaptažodį
nexus_default_admin_password: 'admin123'
Tai neturėtų būti pakeista jūsų žaidimų knygoje. Šis kintamasis užpildomas numatytuoju „Nexus“ administratoriaus slaptažodžiu pirmą kartą įdiegus ir užtikrina, kad galime pakeisti administratoriaus slaptažodį į nexus_admin_password.
Jei norite pakeisti administratoriaus slaptažodį po pirmojo diegimo, galite laikinai pakeisti jį į seną slaptažodį iš komandinės eilutės. Po pasikeitimo nexus_admin_password savo žaidimų knygoje galite paleisti: