ProHoster > Օրագիր > Վարչակազմը > Nexus Sonatype-ի տեղադրում և կարգավորում՝ օգտագործելով ենթակառուցվածքը՝ որպես կոդային մոտեցում
Nexus Sonatype-ի տեղադրում և կարգավորում՝ օգտագործելով ենթակառուցվածքը՝ որպես կոդային մոտեցում
Sonatype Nexus-ը ինտեգրված հարթակ է, որի միջոցով ծրագրավորողները կարող են վստահել, պահել և կառավարել Java (Maven) կախվածությունները, Docker, Python, Ruby, NPM, Bower պատկերներ, RPM փաթեթներ, gitlfs, Apt, Go, Nuget և տարածել իրենց ծրագրային ապահովման անվտանգությունը:
Ինչու՞ է ձեզ անհրաժեշտ Sonatype Nexus-ը:
Մասնավոր արտեֆակտներ պահելու համար;
Ինտերնետից ներբեռնված արտեֆակտների քեշավորման համար.
Արտեֆակտներ, որոնք աջակցվում են հիմնական Sonatype Nexus փաթեթում.
Լռելյայնորեն, դերը կտեղադրի Nexus-ի վերջին հասանելի տարբերակը: Դուք կարող եք շտկել տարբերակը՝ փոխելով փոփոխականը nexus_version. Տես հասանելի տարբերակները https://www.sonatype.com/download-oss-sonatype.
Եթե փոխեք ավելի նոր տարբերակի, դերը կփորձի թարմացնել ձեր Nexus-ի տեղադրումը:
Եթե դուք օգտագործում եք Nexus-ի ավելի հին տարբերակ, քան վերջինը, դուք պետք է համոզվեք, որ չեք օգտագործում այն գործառույթները, որոնք հասանելի չեն տեղադրված թողարկումում (օրինակ, yum պահեստների հոսթինգը հասանելի է 3.8.0-ից ավելի nexus-ի համար, git lfs repo): 3.3.0-ից ավելի nexus-ի համար և այլն)
nexus timezone Java-ի ժամային գոտու անունն է, որը կարող է օգտակար լինել հետևյալ cron արտահայտությունների հետ համատեղ՝ nexus_scheduled առաջադրանքների համար:
Java միացման գործընթացի նավահանգիստը և համատեքստի ուղին: nexus_default_context_path պետք է պարունակի առաջ շեղ, երբ այն դրված է, օրինակ՝ nexus_default_context_path: '/nexus/'.
Nexus OS օգտվող և խումբ
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Օգտատերը և խումբը, որն օգտագործվում էր Nexus ֆայլերի սեփականատեր և ծառայությունն աշխատեցնելու համար, կստեղծվի ըստ դերի, եթե մեկը բացակայում է:
nexus_os_user_home_dir: '/home/nexus'
Թույլատրել փոխել լռելյայն տնային գրացուցակը nexus օգտվողի համար
nexus_installation_dir պարունակում է տեղադրված գործարկվող ֆայլեր
nexus_data_dir պարունակում է բոլոր կոնֆիգուրացիան, պահոցները և ներբեռնված արտեֆակտները: Պատվերով blobstore ուղիներ nexus_data_dir կարող է հարմարեցվել, տես ստորև nexus_blobstores.
nexus_tmp_dir պարունակում է բոլոր ժամանակավոր ֆայլերը: Redhat-ի կանխադրված ուղին տեղափոխվել է /tmp ավտոմատ մաքրման ընթացակարգերի հետ կապված հնարավոր խնդիրները հաղթահարելու համար: Տես #168:
Որպես երկրորդ նախազգուշացում, ահա մի հատված վերը նշված փաստաթղթից.
Խորհուրդ չի տրվում ավելացնել JVM կույտային հիշողությունը առաջարկվող արժեքներից դուրս՝ փորձելով բարելավել կատարողականը: Սա իրականում կարող է հակառակ ազդեցություն ունենալ՝ հանգեցնելով օպերացիոն համակարգի համար անհարկի աշխատանքի:
Ադմինիստրատորի գաղտնաբառը
nexus_admin_password: 'changeme'
Կարգավորման «ադմինիստրատորի» հաշվի գաղտնաբառը: Սա աշխատում է միայն առաջին լռելյայն տեղադրման դեպքում. Խնդրում ենք տեսնել [Փոխել ադմինիստրատորի գաղտնաբառը առաջին տեղադրումից հետո] (# change-admin-password-after-first-install), եթե ցանկանում եք փոխել այն ավելի ուշ՝ օգտագործելով դերը:
Խստորեն խորհուրդ է տրվում չպահել ձեր գաղտնաբառը որպես պարզ տեքստ գրքում, այլ օգտագործել [ansible-vault encryption] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (կամ ներկառուցված կամ առանձին ֆայլում, որը բեռնված է, օրինակ. include_vars)
Լռելյայն անանուն մուտք
nexus_anonymous_access: false
Անանուն մուտքը լռելյայն անջատված է: Կարդալ ավելին մասին անանուն մուտք.
Այս փոփոխականները վերահսկում են, թե ինչպես է դերը միանում Nexus API-ին՝ տրամադրման համար: Միայն առաջադեմ օգտվողների համար: Դուք հավանաբար չեք ցանկանում փոխել այս լռելյայն կարգավորումները
Տեղադրեք SSL հակադարձ վստահված անձ.
Դա անելու համար հարկավոր է տեղադրել httpd: Նշում. երբ համար httpd_setup_enable սահմանել արժեքըtrue, nexus կոնտակտներ 127.0.0.1:8081, այսպիսով ոչ ուղղակիորեն հասանելի լինելով HTTP 8081 պորտի միջոցով արտաքին IP հասցեից:
Օգտագործված լռելյայն հոսթի անունը nexus_public_hostname. Եթե ինչ-ինչ պատճառներով ձեզ անհրաժեշտ են տարբեր անուններ, կարող եք սահմանել httpd_server_name այլ իմաստով.
С httpd_copy_ssl_files: true (ըստ լռելյայն) վերը նշված վկայականները պետք է գոյություն ունենան ձեր playbook գրացուցակում և կպատճենվեն սերվերում և կկարգավորվեն 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
Ցուցակ արտոնություններ պարամետրերի համար: Նայեք փաստաթղթերին և GUI-ին՝ ստուգելու համար, թե որ փոփոխականները պետք է սահմանվեն՝ կախված արտոնության տեսակից:
Այս տարրերը համակցված են հետևյալ լռելյայն արժեքներով.
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
Տեղական (ոչ LDAP) օգտվողների/հաշիվների ցանկ՝ nexus-ում ստեղծելու համար:
Տեղական (ոչ LDAP) օգտատերերի/հաշիվների ցանկ՝ Nexus-ում ստեղծելու համար:
Օգտագործողների/դերերի 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
Ջնջել լռելյայն blobstore-ը nexus install-ի նախնական լռելյայն կազմաձևից: Դա կարելի է անել միայն այն դեպքում, եթե nexus_delete_default_repos: true և բոլոր կազմաձևված շտեմարանները (տես ստորև) ունեն բացահայտ blob_store: custom. Այս քայլը կատարվում է միայն առաջին անգամ տեղադրվելիս (երբ nexus_data_dir հայտնաբերվել է դատարկ):
Բլոբ պահեստի հեռացումը (երկուական արտեֆակտներ) լռելյայն անջատված է սկզբնական կազմաձևից: Բշտիկային պահեստը (երկուական արտեֆակտներ) հեռացնելու համար անջատեք nexus_delete_default_repos: true. Այս քայլը կատարվում է միայն առաջին տեղադրման ժամանակ (երբ nexus_data_dir դատարկ):
Բլոբսթորներ ստեղծել. Blobstore-ի ուղին և պահեստի blobstore-ը չեն կարող թարմացվել սկզբնական ստեղծումից հետո (այստեղ ցանկացած թարմացում անտեսվելու է վերաապահովման ժամանակ):
S3-ում blobstore-ի կարգավորումը տրամադրվում է որպես հարմարավետություն և այն ավտոմատացված թեստերի մաս չէ, որը մենք կատարում ենք travis-ում: Խնդրում ենք նկատի ունենալ, որ S3-ում պահպանումը խորհուրդ է տրվում միայն AWS-ում տեղակայված դեպքերի համար:
Ստեղծագործություն Բլոբսթորներ. Պահպանման ուղին և պահեստը չեն կարող թարմացվել սկզբնական ստեղծումից հետո (այստեղ ցանկացած թարմացում անտեսվելու է, երբ նորից տեղադրվի):
S3-ում բլբի պահեստավորման կարգավորումը տրամադրվում է որպես հարմարություն: Խնդրում ենք նկատի ունենալ, որ 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 ամեն օր):
Մանրամասների համար տե՛ս [groovy template for this task](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-ի հեռացում
Զգուշացում․ սա ամբողջությամբ կջնջի ձեր ընթացիկ տվյալները։ Համոզվեք, որ անհրաժեշտության դեպքում ավելի վաղ կրկնօրինակեք
Օգտագործեք փոփոխական nexus_purgeեթե Ձեզ անհրաժեշտ է վերագործարկել զրոյից և նորից տեղադրել nexus օրինակը՝ բոլոր տվյալները հեռացնելով:
Փոխեք ադմինիստրատորի գաղտնաբառը առաջին տեղադրումից հետո
nexus_default_admin_password: 'admin123'
Սա չպետք է փոխվի ձեր խաղացանկում. Այս փոփոխականը լցված է Nexus-ի կանխադրված ադմինիստրատորի գաղտնաբառով, երբ առաջին անգամ տեղադրվել է, և երաշխավորում է, որ մենք կարող ենք փոխել ադմինիստրատորի գաղտնաբառը nexus_admin_password.
Եթե ցանկանում եք փոխել ադմինիստրատորի գաղտնաբառը առաջին տեղադրումից հետո, կարող եք հրամանի տողից ժամանակավորապես փոխել այն հին գաղտնաբառը: Փոփոխությունից հետո nexus_admin_password ձեր խաղային գրքում կարող եք վազել.