ప్రోహోస్టర్ > బ్లాగ్ > పరిపాలన > ఇన్ఫ్రాస్ట్రక్చర్ను కోడ్ విధానంగా ఉపయోగించి Nexus Sonatypeని ఇన్స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం
ఇన్ఫ్రాస్ట్రక్చర్ను కోడ్ విధానంగా ఉపయోగించి Nexus Sonatypeని ఇన్స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం
Sonatype Nexus అనేది సమీకృత ప్లాట్ఫారమ్, దీని ద్వారా డెవలపర్లు జావా (మావెన్) డిపెండెన్సీలు, డాకర్, పైథాన్, రూబీ, NPM, బోవర్ చిత్రాలు, RPM ప్యాకేజీలు, gitlfs, Apt, Go, Nuget ప్రాక్సీ, నిల్వ మరియు నిర్వహించవచ్చు మరియు వారి సాఫ్ట్వేర్ భద్రతను పంపిణీ చేయవచ్చు.
మీకు సోనాటైప్ నెక్సస్ ఎందుకు అవసరం?
ప్రైవేట్ కళాఖండాలను నిల్వ చేయడానికి;
ఇంటర్నెట్ నుండి డౌన్లోడ్ చేయబడిన కళాఖండాలను కాషింగ్ చేయడానికి;
ప్రాథమిక Sonatype Nexus ప్యాకేజీలో మద్దతు ఉన్న కళాఖండాలు:
డిఫాల్ట్గా, పాత్ర Nexus యొక్క తాజా అందుబాటులో ఉన్న సంస్కరణను ఇన్స్టాల్ చేస్తుంది. మీరు వేరియబుల్ని మార్చడం ద్వారా సంస్కరణను పరిష్కరించవచ్చు nexus_version. అందుబాటులో ఉన్న సంస్కరణలను ఇక్కడ చూడండి https://www.sonatype.com/download-oss-sonatype.
మీరు కొత్త సంస్కరణకు మారినట్లయితే, పాత్ర మీ Nexus ఇన్స్టాలేషన్ను నవీకరించడానికి ప్రయత్నిస్తుంది.
మీరు Nexus యొక్క తాజా వెర్షన్ కంటే పాత వెర్షన్ను ఉపయోగిస్తుంటే, ఇన్స్టాల్ చేసిన విడుదలలో అందుబాటులో లేని ఫీచర్లను మీరు ఉపయోగించడం లేదని నిర్ధారించుకోవాలి (ఉదాహరణకు, yum రిపోజిటరీలను హోస్ట్ చేయడం 3.8.0 కంటే ఎక్కువ, git lfs repo nexus కోసం అందుబాటులో ఉంది 3.3.0 కంటే ఎక్కువ నెక్సస్ కోసం మొదలైనవి)
nexus timezone జావా టైమ్ జోన్ పేరు, ఇది nexus_షెడ్యూల్డ్ టాస్క్ల కోసం క్రింది క్రాన్ ఎక్స్ప్రెషన్లతో కలిపి ఉపయోగపడుతుంది.
జావా కనెక్షన్ ప్రక్రియ యొక్క పోర్ట్ మరియు సందర్భ మార్గం. 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_installation_dir ఇన్స్టాల్ చేయబడిన ఎక్జిక్యూటబుల్ ఫైల్లను కలిగి ఉంటుంది
nexus_data_dir అన్ని కాన్ఫిగరేషన్, రిపోజిటరీలు మరియు డౌన్లోడ్ చేయబడిన కళాఖండాలను కలిగి ఉంటుంది. కస్టమ్ బ్లాబ్స్టోర్ మార్గాలు nexus_data_dir అనుకూలీకరించవచ్చు, క్రింద చూడండి nexus_blobstores.
nexus_tmp_dir అన్ని తాత్కాలిక ఫైల్లను కలిగి ఉంటుంది. redhat కోసం డిఫాల్ట్ పాత్ నుండి తరలించబడింది /tmp ఆటోమేటిక్ క్లీనింగ్ విధానాలతో సంభావ్య సమస్యలను అధిగమించడానికి. #168 చూడండి.
ఇవి Nexus కోసం డిఫాల్ట్ సెట్టింగ్లు. దయచేసి ఈ విలువలను మార్చవద్దుమీరు చదవకపోతే nexus సిస్టమ్ అవసరాలు మెమరీ విభాగం మరియు వారు ఏమి చేస్తున్నారో అర్థం కాలేదు.
రెండవ హెచ్చరికగా, పై పత్రం నుండి ఇక్కడ ఒక సారాంశం ఉంది:
పనితీరును మెరుగుపరిచే ప్రయత్నంలో సిఫార్సు చేయబడిన విలువలకు మించి 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, నెక్సస్ కాంటాక్ట్స్ 127.0.0.1:8081, ఆ విధంగా కాదు బాహ్య IP చిరునామా నుండి HTTP పోర్ట్ 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
జాబితా అధికారాలు సెట్టింగుల కోసం. ప్రివిలేజ్ రకాన్ని బట్టి ఏ వేరియబుల్స్ సెట్ చేయాలో తనిఖీ చేయడానికి డాక్యుమెంటేషన్ మరియు 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 కాని) వినియోగదారులు/ఖాతాల జాబితా.
వినియోగదారులు/పాత్రల 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_data_dir ఖాళీగా గుర్తించబడింది).
Nexus కోసం డిఫాల్ట్ డిఫాల్ట్ కాన్ఫిగరేషన్ నుండి రిపోజిటరీలను తొలగిస్తోంది. ఈ దశ మొదటి ఇన్స్టాలేషన్ సమయంలో మాత్రమే నిర్వహించబడుతుంది (ఎప్పుడు 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 ఖాళీ).
బ్లాబ్స్టోర్స్ సృష్టించడానికి. ప్రారంభ సృష్టి తర్వాత బ్లాబ్స్టోర్ పాత్ మరియు రిపోజిటరీ బ్లాబ్స్టోర్ అప్డేట్ చేయబడవు (ఇక్కడ ఏదైనా అప్డేట్ ఉంటే మళ్లీ ప్రొవిజనింగ్లో విస్మరించబడుతుంది).
S3లో బ్లాబ్స్టోర్ను కాన్ఫిగర్ చేయడం సౌలభ్యం కోసం అందించబడింది మరియు మేము ట్రావిస్లో అమలు చేసే ఆటోమేటెడ్ పరీక్షల్లో భాగం కాదు. దయచేసి AWSలో అమలు చేయబడిన సందర్భాల్లో మాత్రమే S3లో నిల్వ చేయడం సిఫార్సు చేయబడుతుందని గమనించండి.
సృష్టి బ్లాబ్స్టోర్స్. ప్రాథమిక సృష్టి తర్వాత నిల్వ మార్గం మరియు నిల్వ రిపోజిటరీ నవీకరించబడవు (మళ్లీ ఇన్స్టాల్ చేసినప్పుడు ఇక్కడ ఏదైనా నవీకరణ విస్మరించబడుతుంది).
S3లో బొట్టు నిల్వను సెటప్ చేయడం సౌకర్యంగా అందించబడింది. AWSలో అమలు చేయబడిన సందర్భాల్లో మాత్రమే S3 నిల్వ సిఫార్సు చేయబడుతుందని దయచేసి గమనించండి.
మూడు రిపోజిటరీ రకాలు క్రింది డిఫాల్ట్ విలువలతో మిళితం చేయబడ్డాయి:
_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
డాకర్, పైపి, రా, రూబీజెమ్స్, బోవర్, NPM, Git-LFS మరియు yum రిపోజిటరీ రకాలు:
చూడండి defaults/main.yml ఈ ఎంపికల కోసం:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS మరియు yum రిపోజిటరీలు డిఫాల్ట్గా నిలిపివేయబడ్డాయి:
చూడండి defaults/main.yml ఈ ఎంపికల కోసం:
మీరు మావెన్ కాకుండా ఇతర రకాల రిపోజిటరీలను ఉపయోగించాలనుకుంటే, మీరు నిర్దిష్ట భద్రతా స్కోప్లను ప్రారంభించాల్సి ఉంటుందని దయచేసి గమనించండి. ఇది డిఫాల్ట్గా తప్పు
మీరు మారే వరకు బ్యాకప్ కాన్ఫిగర్ చేయబడదు nexus_backup_configure в true.
ఈ సందర్భంలో, షెడ్యూల్ చేయబడిన స్క్రిప్ట్ టాస్క్ Nexusలో అమలు చేయడానికి కాన్ఫిగర్ చేయబడుతుంది
లో పేర్కొన్న విరామంలో nexus_backup_cron (డిఫాల్ట్ 21:00 ప్రతి రోజు).
వివరాల కోసం [ఈ టాస్క్ కోసం గ్రూవీ టెంప్లేట్](టెంప్లేట్లు/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 మీ ప్లేబుక్లో మీరు అమలు చేయవచ్చు: