ProHoster > Блог > басқарма > Кодтық тәсіл ретінде инфрақұрылымды пайдаланып Nexus Sonatype орнату және конфигурациялау
Кодтық тәсіл ретінде инфрақұрылымды пайдаланып Nexus Sonatype орнату және конфигурациялау
Sonatype Nexus – әзірлеушілер Java (Maven) тәуелділіктерін, Docker, Python, Ruby, NPM, Bower кескіндерін, RPM пакеттерін, gitlfs, Apt, Go, Nuget проксилерін, сақтау және басқару және бағдарламалық қамтамасыз ету қауіпсіздігін тарата алатын біріктірілген платформа.
Сізге Sonatype Nexus не үшін қажет?
Жеке артефактілерді сақтау үшін;
Интернеттен жүктеп алынған артефактілерді кэштеу үшін;
Негізгі Sonatype Nexus бумасында қолдау көрсетілетін артефактілер:
Әдепкі мәндері бар айнымалылар (қараңыз default/main.yml):
Жалпы айнымалылар
nexus_version: ''
nexus_timezone: 'UTC'
Әдепкі бойынша, рөл Nexus қолданбасының ең соңғы қолжетімді нұсқасын орнатады. Айнымалы мәнді өзгерту арқылы нұсқаны түзете аласыз nexus_version. Қолжетімді нұсқаларды мына жерден қараңыз https://www.sonatype.com/download-oss-sonatype.
Жаңарақ нұсқаға ауыстырсаңыз, рөл Nexus орнатуыңызды жаңартуға әрекет жасайды.
Если вы используете более старую версию Nexus, чем последняя, вы должны убедиться, что не используете функции, которые недоступны в установленном выпуске (например, размещенние yum репозиториев доступно для nexus больше чем 3.8.0, git lfs repo для nexus больше чем 3.3.0 және т.б.)
nexus timezone — Java уақыт белдеуінің атауы, ол nexus_scheduled тапсырмалары үшін келесі cron өрнектерімен бірге пайдалы болуы мүмкін.
Java қосылым процесінің порты және контекстік жолы. nexus_default_context_path орнатылған кезде қиғаш сызық болуы керек, мысалы: nexus_default_context_path: '/nexus/'.
Nexus ОЖ пайдаланушысы және тобы
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Nexus файлдарын иелену және қызметті іске қосу үшін пайдаланылған пайдаланушы мен топ, егер біреуі жоқ болса, рөл арқылы жасалады.
nexus_os_user_home_dir: '/home/nexus'
Nexus пайдаланушысы үшін әдепкі үй каталогын өзгертуге рұқсат беріңіз
nexus_installation_dir орнатылған орындалатын файлдарды қамтиды
nexus_data_dir барлық конфигурацияны, репозиторийлерді және жүктелген артефактілерді қамтиды. Теңшелетін блоктар қоймасының жолдары nexus_data_dir теңшеуге болады, төменде қараңыз nexus_blobstores.
nexus_tmp_dir барлық уақытша файлдарды қамтиды. Redhat үшін әдепкі жол жылжытылды /tmp автоматты тазалау процедуралары арқылы ықтимал ақауларды жеңу. №168 қараңыз.
Бұл Nexus үшін әдепкі параметрлер. Бұл мәндерді өзгертпеңізОқымаған болсаңыз nexus жүйе талаптарының жады бөлімі және олардың не істеп жатқанын түсінбейді.
Екінші ескерту ретінде жоғарыдағы құжаттан үзінді:
Өнімділікті жақсарту үшін JVM үйме жадын ұсынылған мәндерден жоғарылату ұсынылмайды. Бұл іс жүзінде керісінше әсер етуі мүмкін, бұл операциялық жүйе үшін қажетсіз жұмысты тудырады.
Әкімші құпия сөзі
nexus_admin_password: 'changeme'
Орнату үшін «әкімші» тіркелгісінің құпия сөзі. Бұл тек бірінші әдепкі орнатуда жұмыс істейді. Рөлді пайдаланып оны кейінірек өзгерткіңіз келсе, [Алғашқы орнатудан кейін әкімші құпия сөзін өзгерту] (# өзгерту-әкімші-құпия сөз-бірінші орнатудан кейін) бөлімін қараңыз.
Бұл айнымалы мәндер қамтамасыз ету үшін рөлдің Nexus API интерфейсіне қосылу жолын басқарады. Тек озық пайдаланушылар үшін. Сіз бұл әдепкі параметрлерді өзгерткіңіз келмейтін шығар
Орнату SSL кері прокси.
Мұны істеу үшін сізге httpd орнату қажет. Ескерту: қашан httpd_setup_enable мәнді орнатуtrue, nexus контактілері 127.0.0.1:8081, осылайша емес сыртқы IP мекенжайынан HTTP порты 8081 арқылы тікелей қол жеткізуге болады.
Қолданылатын әдепкі хост атауы nexus_public_hostname. Қандай да бір себептермен басқа атаулар қажет болса, орнатуға болады httpd_server_name басқа мағынада.
С httpd_copy_ssl_files: true (әдепкі бойынша) жоғарыдағы сертификаттар сіздің ойын кітапшаңыздың каталогында болуы керек және серверге көшіріледі және apache бағдарламасында конфигурацияланады.
Серверде бар сертификаттарды пайдаланғыңыз келсе, орнатыңыз 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
Nexus жүйесінде жасау үшін жергілікті (LDAP емес) пайдаланушылар/тіркелгілер тізімі.
Nexus жүйесінде жасалатын жергілікті (LDAP емес) пайдаланушылар/есептік жазбалар тізімі.
Ldap пайдаланушыларды/рөлдерді салыстыру. Мемлекет absent бұрыннан бар болса, бар пайдаланушыдан рөлдерді жояды.
Ldap пайдаланушылары жойылмайды. Болмайтын пайдаланушы үшін рөл орнату әрекеті қатеге әкеледі.
Мазмұн таңдаушылары
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 install бастапқы әдепкі конфигурациясынан репозиторийлерді жойыңыз. Бұл қадам тек бірінші рет орнату кезінде орындалады (қашан nexus_data_dir бос екені анықталды).
Nexus үшін әдепкі әдепкі конфигурациядан репозиторийлерді жою. Бұл қадам тек бірінші орнату кезінде орындалады (қашан nexus_data_dir бос).
nexus_delete_default_blobstore: false
Nexus орнату бастапқы әдепкі конфигурациясынан әдепкі blobstore файлын жойыңыз. Бұл жағдайда ғана жасауға болады nexus_delete_default_repos: true және барлық конфигурацияланған репозиторийлерде (төменде қараңыз) анық blob_store: custom. Бұл қадам тек бірінші рет орнату кезінде орындалады (қашан nexus_data_dir бос екені анықталды).
Blob жадын жою (екілік артефактілер) бастапқы конфигурациядан әдепкі бойынша өшірілген. Блоб қоймасын (екілік артефактілерді) жою үшін өшіріңіз nexus_delete_default_repos: true. Бұл қадам тек бірінші орнату кезінде орындалады (қашан nexus_data_dir бос).
Blobstores құру. Blobstore жолы мен репозиторий blobstore бастапқы жасалғаннан кейін жаңартылмайды (мұндағы кез келген жаңарту қайта қамтамасыз ету кезінде еленбейді).
S3 жүйесінде blobstore конфигурациялау ыңғайлылық ретінде қамтамасыз етілген және трависте орындайтын автоматтандырылған сынақтардың бөлігі емес. S3 жүйесінде сақтау тек AWS жүйесінде орналастырылған даналар үшін ұсынылатынын ескеріңіз.
Жасау Blobstores. Сақтау жолы мен сақтау репозиторийін бастапқы жасаудан кейін жаңарту мүмкін емес (қайта орнатылған кезде мұндағы кез келген жаңарту еленбейді).
S3 жүйесінде blob қоймасын орнату ыңғайлылық ретінде қамтамасыз етілген. S3 жады тек AWS жүйесінде орналастырылған даналар үшін ұсынылатынын ескеріңіз.
Барлық үш репозитарий түрі келесі әдепкі мәндермен біріктірілген:
_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 және yum репозиторий түрлері:
көру defaults/main.yml осы опциялар үшін:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS және yum репозиторийлері әдепкі бойынша өшірілген:
Қараңыз defaults/main.yml осы опциялар үшін:
maven-тен басқа репозиторийлердің басқа түрлерін пайдаланғыңыз келсе, белгілі бір қауіпсіздік аумақтарын қосу қажет болуы мүмкін екенін ескеріңіз. Бұл әдепкі бойынша жалған
Сақтық көшірме сіз ауыстырмайынша конфигурацияланбайды nexus_backup_configure в true.
Бұл жағдайда жоспарланған сценарий тапсырмасы Nexus жүйесінде іске қосу үшін конфигурацияланады
көрсетілген аралықта nexus_backup_cron (әдепкі күн сайын 21:00).
Мәліметтерді [осы тапсырма үшін керемет үлгіні](templates/backup.groovy.j2) қараңыз.
Бұл жоспарланған тапсырма басқалардан тәуелсіз 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 данасын қайта орнату қажет болса.
Бірінші орнатудан кейін әкімші құпия сөзін өзгертіңіз
nexus_default_admin_password: 'admin123'
Бұл ойын кітапшаңызда өзгертілмеуі керек. Бұл айнымалы мән бірінші рет орнатылған кезде әдепкі Nexus әкімші құпия сөзімен толтырылады және әкімші құпия сөзін келесіге өзгертуге болады. nexus_admin_password.
Бірінші орнатудан кейін әкімші құпия сөзін өзгерткіңіз келсе, оны пәрмен жолынан ескі құпия сөзге уақытша өзгертуге болады. Өзгергеннен кейін nexus_admin_password ойын кітабында сіз келесі әрекеттерді орындай аласыз: