ПроХостер > блог > Администрација > Инсталирање и конфигурисање Некус Сонатипе користећи приступ инфраструктуре као кода
Инсталирање и конфигурисање Некус Сонатипе користећи приступ инфраструктуре као кода
Сонатипе Некус је интегрисана платформа преко које програмери могу да замене, чувају и управљају Јава (Мавен) зависностима, Доцкер, Питхон, Руби, НПМ, Бовер сликама, РПМ пакетима, гитлфс, Апт, Го, Нугет и дистрибуирају своју софтверску безбедност.
Зашто вам је потребан Сонатипе Некус?
За чување приватних артефаката;
За кеширање артефаката који се преузимају са Интернета;
Артефакти подржани у основном Сонатипе Некус пакету:
Променљиве са подразумеваним вредностима (погледајте default/main.yml):
Опште варијабле
nexus_version: ''
nexus_timezone: 'UTC'
Подразумевано, улога ће инсталирати најновију доступну верзију Некуса. Можете поправити верзију променом променљиве nexus_version. Погледајте доступне верзије на https://www.sonatype.com/download-oss-sonatype.
Ако пређете на новију верзију, улога ће покушати да ажурира вашу Некус инсталацију.
Ако користите старију верзију Некуса од најновије, требало би да се уверите да не користите функције које нису доступне у инсталираном издању (на пример, хостовање иум спремишта је доступно за некус већи од 3.8.0, гит лфс репо за нексус већи од 3.3.0 итд.)
nexus timezone је назив временске зоне Јава, што може бити корисно у комбинацији са следећим црон изразима за некус_сцхедулед задатке.
Порт и контекстуална путања процеса Јава везе. nexus_default_context_path мора да садржи косу црту када је постављена, нпр.: nexus_default_context_path: '/nexus/'.
Корисник и група Некус ОС-а
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Корисник и група који су поседовали Некус датотеке и покренули услугу биће креирани улогом ако она недостаје.
nexus_os_user_home_dir: '/home/nexus'
Дозволи промену подразумеваног кућног директоријума за некус корисника
nexus_installation_dir садржи инсталиране извршне датотеке
nexus_data_dir садржи све конфигурације, спремишта и преузете артефакте. Прилагођене путање блобсторе-а nexus_data_dir може се прилагодити, погледајте испод nexus_blobstores.
nexus_tmp_dir садржи све привремене датотеке. Подразумевана путања за редхат је премештена /tmp за превазилажење потенцијалних проблема са аутоматским поступцима чишћења. Види #168.
Ово су подразумевана подешавања за Некус. Молимо вас да не мењате ове вредностиАко нисте читали одељак меморије некус системских захтева и не разумеју шта раде.
Као друго упозорење, ево извода из горе наведеног документа:
Не препоручује се повећање ЈВМ хеап меморије преко препоручених вредности у покушају да се побољшају перформансе. Ово заправо може имати супротан ефекат, што резултира непотребним радом за оперативни систем.
Администраторска лозинка
nexus_admin_password: 'changeme'
Лозинка „администраторског“ налога за подешавање. Ово ради само на првој подразумеваној инсталацији. Погледајте [Промена лозинке администратора након прве инсталације] (# промена-админ-лозинке-после прве инсталације) ако желите да је промените касније користећи улогу.
Изричито се препоручује да своју лозинку не чувате у чистом тексту у свесци, већ да користите [ансибле-ваулт енкрипцију] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (инлине или у засебној датотеци учитаној нпр. инцлуде_варс)
Анонимни приступ подразумевано
nexus_anonymous_access: false
Анонимни приступ је подразумевано онемогућен. Прочитајте више о анонимни приступ.
Ове варијабле контролишу како се улога повезује са Некус АПИ-јем за обезбеђивање. Само за напредне кориснике. Вероватно не желите да мењате ове подразумеване поставке
Сет ССЛ обрнути прокси.
Да бисте то урадили, потребно је да инсталирате хттпд. Напомена: када за httpd_setup_enable подешена вредностtrue, некус контакти 127.0.0.1:8081, дакле не бити директно доступан преко ХТТП порта 8081 са спољне ИП адресе.
Подразумевано коришћено име хоста је nexus_public_hostname. Ако су вам из неког разлога потребна другачија имена, можете их подесити httpd_server_name са другачијим значењем.
С httpd_copy_ssl_files: true (подразумевано) горенаведени сертификати треба да постоје у вашем директоријуму плаибоок и биће копирани на сервер и конфигурисани у апацхе-у.
Ако желите да користите постојеће сертификате на серверу, инсталирајте httpd_copy_ssl_files: false и обезбеди следеће променљиве:
# 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 је опционо и требало би да га не поставите ако не желите да прилагодите датотеку ланца
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
Списак привилегије за подешавања. Погледајте документацију и ГУИ да проверите које променљиве треба да се подесе у зависности од типа привилегија.
Ови елементи су комбиновани са следећим подразумеваним вредностима:
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
Листа локалних (не-ЛДАП) корисника/налога за креирање у некус-у.
Листа локалних (не-ЛДАП) корисника/налога за креирање у Некус-у.
Лдап мапирање корисника/улога. Држава absent ће уклонити улоге постојећег корисника ако већ постоји.
Корисници Лдап-а се не бришу. Покушај постављања улоге за непостојећег корисника резултираће грешком.
Селектори садржаја
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
За више информација о бирачу садржаја, погледајте Документација.
Да бисте користили бирач садржаја, додајте нову привилегију са type: repository-content-selector и релевантнеcontentSelector
Избришите спремишта из почетне подразумеване конфигурације некус инсталл. Овај корак се извршава само при првој инсталацији (када nexus_data_dir је откривено да је празно).
Уклањање спремишта из подразумеване подразумеване конфигурације за Некус. Овај корак се изводи само током прве инсталације (када nexus_data_dir празан).
nexus_delete_default_blobstore: false
Избришите подразумевани блобсторе из почетне подразумеване конфигурације некус инсталл. Ово се може урадити само ако nexus_delete_default_repos: true и сва конфигурисана спремишта (погледајте доле) имају експлицитни blob_store: custom. Овај корак се извршава само при првој инсталацији (када nexus_data_dir је откривено да је празно).
Уклањање блоб меморије (бинарни артефакти) је подразумевано онемогућено у почетној конфигурацији. Да бисте уклонили складиште блобова (бинарне артефакте), искључите nexus_delete_default_repos: true. Овај корак се изводи само током прве инсталације (када nexus_data_dir празан).
Блобсторес створити. Путања блобсторе-а и блобсторе спремишта не могу се ажурирати након почетног креирања (свако ажурирање овде ће бити занемарено приликом поновног обезбеђивања).
Конфигурисање блобсторе-а на С3 је обезбеђено као погодност и није део аутоматизованих тестова које изводимо на Травис-у. Имајте на уму да се складиштење на С3 препоручује само за инстанце распоређене на АВС.
Стварање Блобсторес. Путања за складиштење и складиште складиштења се не могу ажурирати након почетног креирања (свако ажурирање овде ће бити занемарено када се поново инсталира).
Постављање блоб меморије на С3 је обезбеђено као погодност. Имајте на уму да се С3 складиште препоручује само за инстанце примењене на АВС-у.
nexus_repos_maven_hosted:
- name: private-release
version_policy: release
write_policy: allow_once # one of "allow", "allow_once" or "deny"
Мавен хостована спремишта конфигурацију. Негативна конфигурација кеша је опциона и подразумевано ће поставити горе наведене вредности ако се изостави.
Конфигурација хостована спремишта Мавен. Негативна конфигурација кеша (-1) је опциона и подразумевано ће користити горе наведене вредности ако нису наведене.
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
Сва три типа спремишта су комбинована са следећим подразумеваним вредностима:
_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
Доцкер, Пипи, Рав, Рубигемс, Бовер, НПМ, Гит-ЛФС и иум типови спремишта:
видети defaults/main.yml за ове опције:
Доцкер, Пипи, Рав, Рубигемс, Бовер, НПМ, Гит-ЛФС и иум спремишта су подразумевано онемогућена:
Видети defaults/main.yml за ове опције:
Имајте на уму да ћете можда морати да омогућите одређене безбедносне опсеге ако желите да користите друге типове спремишта осим мавен-а. Ово је подразумевано нетачно
Резервна копија неће бити конфигурисана док не промените nexus_backup_configure в true.
У овом случају, заказани задатак скрипте ће бити конфигурисан за покретање на Некус-у
у интервалу наведеном у nexus_backup_cron (подразумевано 21:00 сваки дан).
Погледајте [гроови шаблон за овај задатак](темплатес/бацкуп.гроови.ј2) за детаље.
Овај заказани задатак је независан од других nexus_scheduled_tasksкоји вам
објавите у својој свесци.
Ако желите да ротирате/избришете резервне копије, инсталирајте nexus_backup_rotate: true и конфигуришите број резервних копија које желите да сачувате користећи nexus_backup_keep_rotations (подразумевано 4).
Када користите ротацију, ако желите да уштедите додатни простор на диску током процеса прављења резервне копије,
Можете инсталирати nexus_backup_rotate_first: true. Ово ће конфигурисати пре-ротацију/брисање пре прављења резервне копије. Подразумевано, ротација се дешава након креирања резервне копије. Имајте на уму да у овом случају старе резервне копије
биће обрисан пре него што се направи тренутна резервна копија.
Поступак опоравка
Покрените плаибоок са параметром -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(на пример, 2017-12-17-21-00-00 за 17. децембар 2017. у 21:00
Уклањање нексуса
Упозорење: Ово ће потпуно избрисати ваше тренутне податке. Обавезно направите резервну копију раније ако је потребно
Користите променљиву nexus_purgeако треба да рестартујете испочетка и поново инсталирате некус инстанцу са уклоњеним свим подацима.
Промените лозинку администратора након прве инсталације
nexus_default_admin_password: 'admin123'
Ово не треба мењати у вашој свесци. Ова променљива је попуњена подразумеваном Некус администраторском лозинком када се први пут инсталира и обезбеђује да можемо да променимо администраторску лозинку у nexus_admin_password.
Ако желите да промените администраторску лозинку након прве инсталације, можете је привремено променити у стару лозинку из командне линије. После промене nexus_admin_password у својој свесци можете покренути: