सोनाटाइप नेक्सस एक एकीकृत प्लेटफॉर्म है जिसके साथ डेवलपर जावा (मावेन) की निर्भरता, डॉकर, पायथन, रूबी, एनपीएम, बोवर इमेज, आरपीएम पैकेज, गिटफॉल, एप्ट, गो, नुगेट को स्टोर कर सकते हैं और प्रबंधित कर सकते हैं, साथ ही अपने सॉफ्टवेयर को वितरित भी करेंगे। सॉफ्टवेयर।
मुझे Sonatype Nexus की आवश्यकता क्यों है?
- निजी कलाकृतियों को संग्रहीत करने के लिए;
- इंटरनेट से डाउनलोड की जाने वाली कलाकृतियों के लिए;
Sonatype Nexus बेस पैकेज में समर्थित कलाकृतियाँ:
- जावा, मावेन (जार)
- डाक में काम करनेवाला मज़दूर
- अजगर (पाइप)
- रूबी (मणि)
- NPM
- कुंज
- यम (आरपीएम)
- gitlfs
- कच्चा
- आप्ट (वाद-विवाद)
- जाओ
- Nuget
समुदाय समर्थित कलाकृतियों:
- संगीतकार
- कॉनन
- CPAN
- ELPA
- पतवार
- P2
- आर
आवश्यकताओं
- इंटरनेट पर ansible का उपयोग करने के बारे में पढ़ें।
- कार्यपुस्तिका जहाँ प्लेबुक शुरू होती है, उस पर ansible
pip install ansible
करें। - कार्यस्थान पर geerlingguy.java स्थापित करें जहां प्लेबुक शुरू होता है।
- कार्यस्थान पर geerlingguy.apache स्थापित करें जहां प्लेबुक शुरू होता है।
- इस भूमिका को CentOS 7, Ubuntu Xenial (16.04) और Bionic (18.04), डेबियन जेसी और स्ट्रेच पर परीक्षण किया गया है
jmespath
लाइब्रेरी को वर्कस्टेशन पर स्थापित किया जाना चाहिए जहां प्लेबुक शुरू होती है। स्थापित करने के लिए, sudo pip install -r requirements.txt
- प्लेबुक फ़ाइल (नीचे उदाहरण) को nexus.yml फ़ाइल में सहेजें
- नेक्सस
ansible-playbook -i host nexus.yml
की स्थापना चलाएँ
रिपॉजिटरी मावेन (जावा), डॉकर, पायथन, रूबी, एनपीएम, बोवर, आरपीएम, और गिटफॉल्स के साथ एलडीएपी के बिना नेक्सस स्थापित करने के लिए एक अविश्वसनीय-प्लेबुक उदाहरण है।
--- - name: Nexus hosts: nexus become: yes vars: nexus_timezone: 'Asia/Omsk' nexus_admin_password: "admin123" nexus_public_hostname: 'apatsev-nexus-playbook' httpd_setup_enable: false nexus_privileges: - name: all-repos-read description: 'Read & Browse access to all repos' repository: '*' actions: - read - browse - name: company-project-deploy description: 'Deployments to company-project' repository: company-project actions: - add - edit nexus_roles: - id: Developpers # maps to the LDAP group name: developers description: All developers privileges: - nx-search-read - all-repos-read - company-project-deploy roles: [] nexus_local_users: - username: jenkins # used as key to update first_name: Jenkins last_name: CI email: support@company.com password: "s3cr3t" roles: - Developpers # role ID here nexus_blobstores: - name: company-artifacts path: /var/nexus/blobs/company-artifacts nexus_scheduled_tasks: - name: compact-blobstore cron: '0 0 22 * * ?' typeId: blobstore.compact taskProperties: blobstoreName: 'company-artifacts' nexus_repos_maven_proxy: - name: central remote_url: 'https://repo1.maven.org/maven2/' layout_policy: permissive - name: jboss remote_url: 'https://repository.jboss.org/nexus/content/groups/public-jboss/' - name: vaadin-addons remote_url: 'https://maven.vaadin.com/vaadin-addons/' - name: jaspersoft remote_url: 'https://jaspersoft.artifactoryonline.com/jaspersoft/jaspersoft-repo/' version_policy: mixed nexus_repos_maven_hosted: - name: company-project version_policy: mixed write_policy: allow blob_store: company-artifacts nexus_repos_maven_group: - name: public member_repos: - central - jboss - vaadin-addons - jaspersoft # Yum. Change nexus_config_yum to true for create yum repository nexus_config_yum: true nexus_repos_yum_hosted: - name: private_yum_centos_7 repodata_depth: 1 nexus_repos_yum_proxy: - name: epel_centos_7_x86_64 remote_url: http://download.fedoraproject.org/pub/epel/7/x86_64 maximum_component_age: -1 maximum_metadata_age: -1 negative_cache_ttl: 60 - name: centos-7-os-x86_64 remote_url: http://mirror.centos.org/centos/7/os/x86_64/ maximum_component_age: -1 maximum_metadata_age: -1 negative_cache_ttl: 60 nexus_repos_yum_group: - name: yum_all member_repos: - private_yum_centos_7 - epel_centos_7_x86_64 # NPM. Change nexus_config_npm to true for create npm repository nexus_config_npm: true nexus_repos_npm_hosted: [] nexus_repos_npm_group: - name: npm-public member_repos: - npm-registry nexus_repos_npm_proxy: - name: npm-registry remote_url: https://registry.npmjs.org/ negative_cache_enabled: false # Docker. Change nexus_config_docker to true for create docker repository nexus_config_docker: true nexus_repos_docker_hosted: - name: docker-hosted http_port: "{{ nexus_docker_hosted_port }}" v1_enabled: True nexus_repos_docker_proxy: - name: docker-proxy http_port: "{{ nexus_docker_proxy_port }}" v1_enabled: True index_type: "HUB" remote_url: "https://registry-1.docker.io" use_nexus_certificates_to_access_index: false maximum_component_age: 1440 maximum_metadata_age: 1440 negative_cache_enabled: true negative_cache_ttl: 1440 nexus_repos_docker_group: - name: docker-group http_port: "{{ nexus_docker_group_port }}" v1_enabled: True member_repos: - docker-hosted - docker-proxy # Bower. Change nexus_config_bower to true for create bower repository nexus_config_bower: true nexus_repos_bower_hosted: - name: bower-hosted nexus_repos_bower_proxy: - name: bower-proxy index_type: "proxy" remote_url: "https://registry.bower.io" use_nexus_certificates_to_access_index: false maximum_component_age: 1440 maximum_metadata_age: 1440 negative_cache_enabled: true negative_cache_ttl: 1440 nexus_repos_bower_group: - name: bower-group member_repos: - bower-hosted - bower-proxy # Pypi. Change nexus_config_pypi to true for create pypi repository nexus_config_pypi: true nexus_repos_pypi_hosted: - name: pypi-hosted nexus_repos_pypi_proxy: - name: pypi-proxy index_type: "proxy" remote_url: "https://pypi.org/" use_nexus_certificates_to_access_index: false maximum_component_age: 1440 maximum_metadata_age: 1440 negative_cache_enabled: true negative_cache_ttl: 1440 nexus_repos_pypi_group: - name: pypi-group member_repos: - pypi-hosted - pypi-proxy # rubygems. Change nexus_config_rubygems to true for create rubygems repository nexus_config_rubygems: true nexus_repos_rubygems_hosted: - name: rubygems-hosted nexus_repos_rubygems_proxy: - name: rubygems-proxy index_type: "proxy" remote_url: "https://rubygems.org" use_nexus_certificates_to_access_index: false maximum_component_age: 1440 maximum_metadata_age: 1440 negative_cache_enabled: true negative_cache_ttl: 1440 nexus_repos_rubygems_group: - name: rubygems-group member_repos: - rubygems-hosted - rubygems-proxy # gitlfs. Change nexus_config_gitlfs to true for create gitlfs repository nexus_config_gitlfs: true nexus_repos_gitlfs_hosted: - name: gitlfs-hosted roles: - { role: geerlingguy.java } # Debian/Ubuntu only # - { role: geerlingguy.apache, apache_create_vhosts: no, apache_mods_enabled: ["proxy_http.load", "headers.load"], apache_remove_default_vhost: true, tags: ["geerlingguy.apache"] } # RedHat/CentOS only - { role: geerlingguy.apache, apache_create_vhosts: no, apache_remove_default_vhost: true, tags: ["geerlingguy.apache"] } - { role: ansible-thoteam.nexus3-oss, tags: ['ansible-thoteam.nexus3-oss'] }
स्क्रीनशॉट:


भूमिका चर
भूमिका चर
डिफ़ॉल्ट मान वाले चर ( default/main.yml
देखें):
सामान्य चर
nexus_version: '' nexus_timezone: 'UTC'
डिफ़ॉल्ट रूप से, भूमिका नेक्सस के नवीनतम उपलब्ध संस्करण को स्थापित करेगी। आप nexus_version
चर को बदलकर संस्करण को ठीक कर सकते हैं। उपलब्ध संस्करणों को https://www.sonatype.com/download-oss-sonatype पर देखें ।
यदि आप संस्करण को एक नए में बदलते हैं, तो भूमिका आपके स्थापित नेक्सस को अपडेट करने की कोशिश करेगी।
यदि आप नेक्सस के पुराने संस्करण का उपयोग नवीनतम से कर रहे हैं, तो आपको यह सुनिश्चित करना चाहिए कि आप उन सुविधाओं का उपयोग नहीं कर रहे हैं जो इंस्टॉल किए गए रिलीज़ में उपलब्ध नहीं हैं (उदाहरण के लिए, yum रिपॉजिटरी की मेजबानी 3.8x से अधिक के लिए उपलब्ध है, नेक्सस के लिए git lfso 3.3.0 से अधिक है और टी। डी।)
nexus timezone
टाइमज़ोन एक जावा टाइमज़ोन नाम है जो कि nexus_scheduled कार्यों के लिए नीचे क्रोन अभिव्यक्तियों के संयोजन में उपयोगी हो सकता है।
Nexus पोर्ट और संदर्भ पथ
nexus_default_port: 8081 nexus_default_context_path: '/'
जावा कनेक्शन प्रक्रिया का पोर्ट और संदर्भ पथ। nexus_default_context_path
को सेट होने पर स्लैश होना चाहिए, उदा।: nexus_default_context_path: '/nexus/'
।
Nexus उपयोगकर्ता और समूह
nexus_os_group: 'nexus' nexus_os_user: 'nexus'
उपयोगकर्ता और समूह नेक्सस फ़ाइलों के मालिक थे और सेवा शुरू होने पर यह भूमिका द्वारा बनाई जाएगी यदि यह गायब है।
nexus_os_user_home_dir: '/home/nexus'
नेक्सस उपयोगकर्ता के लिए डिफ़ॉल्ट होम निर्देशिका बदलने की अनुमति दें
नेक्सस इंस्टेंस निर्देशिकाएँ
nexus_installation_dir: '/opt' nexus_data_dir: '/var/nexus' nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"
नेक्सस कैटलॉग।
nexus_installation_dir
में इंस्टॉल किए गए निष्पादनयोग्य शामिल हैंnexus_data_dir
में सभी कॉन्फ़िगरेशन, रिपॉजिटरी और लोड की गई कलाकृतियाँ हैं। कस्टम ब्लॉस्टस्टोर nexus_data_dir nexus_data_dir
कॉन्फ़िगर किए जा सकते हैं, नीचे nexus_blobstores
देखें।nexus_tmp_dir
में सभी अस्थायी फ़ाइलें हैं। स्वत: सफाई प्रक्रियाओं के साथ संभावित समस्याओं को दूर करने के लिए redhat के लिए डिफ़ॉल्ट पथ को /tmp
से स्थानांतरित किया गया है। # 168 देखें।
Nexus JVM मेमोरी उपयोग कॉन्फ़िगर करें
nexus_min_heap_size: "1200M" nexus_max_heap_size: "{{ nexus_min_heap_size }}" nexus_max_direct_memory: "2G"
ये नेक्सस के लिए डिफ़ॉल्ट सेटिंग्स हैं। कृपया इन मूल्यों को न बदलें यदि आपने नेक्सस प्रणाली की आवश्यकताओं के मेमोरी अनुभाग को नहीं पढ़ा है और यह नहीं समझते हैं कि वे क्या कर रहे हैं।
दूसरी चेतावनी के रूप में, यहाँ उपरोक्त दस्तावेज़ का एक अंश है:
प्रदर्शन को बेहतर बनाने के प्रयास में अनुशंसित मूल्यों से परे जेवीएम हीप मेमोरी को बढ़ाने की अनुशंसा नहीं की जाती है। यह वास्तव में विपरीत प्रभाव डाल सकता है, जिससे ऑपरेटिंग सिस्टम का अनावश्यक संचालन हो सकता है।
व्यवस्थापक पासवर्ड
nexus_admin_password: 'changeme'
"व्यवस्थापक" खाते का पासवर्ड कॉन्फ़िगर करना है। यह केवल पहली डिफ़ॉल्ट स्थापना पर काम करता है । कृपया देखें [पहली स्थापना के बाद व्यवस्थापक पासवर्ड बदलें] (# परिवर्तन-व्यवस्थापक-पासवर्ड-पहले-बाद में) यदि आप भूमिका का उपयोग करके बाद में इसे बदलना चाहते हैं।
प्लेबुक में अपने पासवर्ड को स्पष्ट पाठ में संग्रहीत करने के लिए दृढ़ता से हतोत्साहित किया जाता है, लेकिन [ansible-vault एन्क्रिप्शन] ( https://docs.ansible.com/ansible/latest/user_guide/vault.html ) का उपयोग करें (या तो अंतर्निहित या एक अलग फ़ाइल में,) load_ उदा।
डिफ़ॉल्ट अनाम पहुँच
nexus_anonymous_access: false
अनाम पहुँच डिफ़ॉल्ट रूप से बंद है। अनाम पहुँच के बारे में और पढ़ें।
सार्वजनिक होस्टनाम
nexus_public_hostname: 'nexus.vm' nexus_public_scheme: https
पूरी तरह से योग्य डोमेन नाम और योजना (https या http) जिसके द्वारा नेक्सस उदाहरण अपने ग्राहकों के लिए उपलब्ध होगा।
इस भूमिका के लिए एपीआई का उपयोग
nexus_api_hostname: localhost nexus_api_scheme: http nexus_api_validate_certs: "{{ nexus_api_scheme == 'https' }}" nexus_api_context_path: "{{ nexus_default_context_path }}" nexus_api_port: "{{ nexus_default_port }}"
ये चर नियंत्रित करते हैं कि भूमिका प्रावधान के लिए नेक्सस एपीआई से कैसे जुड़ती है।
केवल उन्नत उपयोगकर्ताओं के लिए। सबसे अधिक संभावना है कि आप इन डिफ़ॉल्ट सेटिंग्स को बदलना नहीं चाहते हैं
प्रॉक्सी सेटअप उल्टा
httpd_setup_enable: false httpd_server_name: "{{ nexus_public_hostname }}" httpd_default_admin_email: "admin@example.com" httpd_ssl_certificate_file: 'files/nexus.vm.crt' httpd_ssl_certificate_key_file: 'files/nexus.vm.key' # httpd_ssl_certificate_chain_file: "{{ httpd_ssl_certificate_file }}" httpd_copy_ssl_files: true
SSL रिवर्स प्रॉक्सी स्थापित करें।
ऐसा करने के लिए, httpd स्थापित करें। नोट: जब httpd_setup_enable
सेट होता true
, तो नेक्सस संपर्क 127.0.0.1:8081, इस प्रकार बाहरी आईपी पते से HTTP पोर्ट 8081 के माध्यम से सीधे पहुँचा नहीं जा सकता है।
डिफ़ॉल्ट होस्ट नाम का उपयोग nexus_public_hostname
। यदि आपको किसी भी कारण से अलग-अलग नामों की आवश्यकता है, तो आप अलग मान के साथ httpd_server_name
सेट कर सकते हैं।
httpd_copy_ssl_files: true
(डिफ़ॉल्ट) के साथ, उपरोक्त प्रमाणपत्र आपकी प्लेबुक निर्देशिका में मौजूद होना चाहिए और इसे सर्वर पर कॉपी किया जाएगा और अपाचे में कॉन्फ़िगर किया जाएगा।
यदि आप सर्वर पर मौजूदा प्रमाणपत्रों का उपयोग करना चाहते हैं, तो httpd_copy_ssl_files: false
सेट 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
वैकल्पिक है और यदि आप श्रृंखला फ़ाइल को कॉन्फ़िगर नहीं करना चाहते हैं तो इसे अनइंस्टॉल कर दिया जाना चाहिए
httpd_default_admin_email: "admin@example.com"
डिफ़ॉल्ट व्यवस्थापक ईमेल सेट करें
LDAP कॉन्फ़िगरेशन
LDAP कनेक्शन और सुरक्षा क्षेत्र डिफ़ॉल्ट रूप से अक्षम हैं
nexus_ldap_realm: false ldap_connections: []
LDAP कनेक्शन , प्रत्येक आइटम निम्नानुसार है:
nexus_ldap_realm: true ldap_connections: - ldap_name: 'My Company LDAP' # used as a key to update the ldap config ldap_protocol: 'ldaps' # ldap or ldaps ldap_hostname: 'ldap.mycompany.com' ldap_port: 636 ldap_use_trust_store: false # Wether or not to use certs in the nexus trust store ldap_search_base: 'dc=mycompany,dc=net' ldap_auth: 'none' # or simple ldap_auth_username: 'username' # if auth = simple ldap_auth_password: 'password' # if auth = simple ldap_user_base_dn: 'ou=users' ldap_user_filter: '(cn=*)' # (optional) ldap_user_object_class: 'inetOrgPerson' ldap_user_id_attribute: 'uid' ldap_user_real_name_attribute: 'cn' ldap_user_email_attribute: 'mail' ldap_user_subtree: false ldap_map_groups_as_roles: false ldap_group_base_dn: 'ou=groups' ldap_group_object_class: 'posixGroup' ldap_group_id_attribute: 'cn' ldap_group_member_attribute: 'memberUid' ldap_group_member_format: '${username}' ldap_group_subtree: false
अनाम प्रमाणन के लिए उदाहरण LDAP कॉन्फ़िगरेशन (अनाम बाइंडिंग), यह एक "न्यूनतम" कॉन्फ़िगरेशन भी है:
nexus_ldap_realm: true ldap_connection: - ldap_name: 'Simplest LDAP config' ldap_protocol: 'ldaps' ldap_hostname: 'annuaire.mycompany.com' ldap_search_base: 'dc=mycompany,dc=net' ldap_port: 636 ldap_use_trust_store: false ldap_user_id_attribute: 'uid' ldap_user_real_name_attribute: 'cn' ldap_user_email_attribute: 'mail' ldap_user_object_class: 'inetOrgPerson'
उदाहरण एलडीएपी विन्यास सरल प्रमाणीकरण के लिए (डीएसए खाते का उपयोग करके):
nexus_ldap_realm: true ldap_connections: - ldap_name: 'LDAP config with DSA' ldap_protocol: 'ldaps' ldap_hostname: 'annuaire.mycompany.com' ldap_port: 636 ldap_use_trust_store: false ldap_auth: 'simple' ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net' ldap_auth_password: "{{ vault_ldap_dsa_password }}" # better keep passwords in an ansible vault ldap_search_base: 'dc=mycompany,dc=net' ldap_user_base_dn: 'ou=users' ldap_user_object_class: 'inetOrgPerson' ldap_user_id_attribute: 'uid' ldap_user_real_name_attribute: 'cn' ldap_user_email_attribute: 'mail' ldap_user_subtree: false
उदाहरण एलडीएपी सरल प्रमाणीकरण के लिए कॉन्फ़िगरेशन (डीएसए खाते का उपयोग करके) + समूह को भूमिकाओं के रूप में मैप किया गया:
nexus_ldap_realm: true ldap_connections - ldap_name: 'LDAP config with DSA' ldap_protocol: 'ldaps' ldap_hostname: 'annuaire.mycompany.com' ldap_port: 636 ldap_use_trust_store: false ldap_auth: 'simple' ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net' ldap_auth_password: "{{ vault_ldap_dsa_password }}" # better keep passwords in an ansible vault ldap_search_base: 'dc=mycompany,dc=net' ldap_user_base_dn: 'ou=users' ldap_user_object_class: 'inetOrgPerson' ldap_user_id_attribute: 'uid' ldap_user_real_name_attribute: 'cn' ldap_user_email_attribute: 'mail' ldap_map_groups_as_roles: true ldap_group_base_dn: 'ou=groups' ldap_group_object_class: 'groupOfNames' ldap_group_id_attribute: 'cn' ldap_group_member_attribute: 'member' ldap_group_member_format: 'uid=${username},ou=users,dc=mycompany,dc=net' ldap_group_subtree: false
सरल प्रमाणीकरण के लिए एलडीएपी कॉन्फ़िगरेशन (डीएसए खाते का उपयोग करके) + समूह गतिशील रूप से भूमिकाओं के रूप में मैप किए जाते हैं:
nexus_ldap_realm: true ldap_connections: - ldap_name: 'LDAP config with DSA' ldap_protocol: 'ldaps' ldap_hostname: 'annuaire.mycompany.com' ldap_port: 636 ldap_use_trust_store: false ldap_auth: 'simple' ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net' ldap_auth_password: "{{ vault_ldap_dsa_password }}" # better keep passwords in an ansible vault ldap_search_base: 'dc=mycompany,dc=net' ldap_user_base_dn: 'ou=users' ldap_user_object_class: 'inetOrgPerson' ldap_user_id_attribute: 'uid' ldap_user_real_name_attribute: 'cn' ldap_user_email_attribute: 'mail' ldap_map_groups_as_roles: true ldap_map_groups_as_roles_type: 'dynamic' ldap_user_memberof_attribute: 'memberOf'
विशेषाधिकार
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_privilege_defaults: type: repository-view format: maven2 actions: - read
भूमिकाएँ (नेक्सस के अंदर उपलब्ध है)
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: support@company.com # password: "s3cr3t" # roles: # - developers # role ID
स्थानीय (गैर-एलडीएपी) उपयोगकर्ता / खातों की सूची सांठगांठ बनाने के लिए।
Nexus पर बनाने के लिए स्थानीय (गैर-LDAP) उपयोगकर्ताओं / खातों की सूची।
nexus_ldap_users: [] # - username: j.doe # state: present # roles: # - "nx-admin"
मैपिंग 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
साथ एक नया विशेषाधिकार जोड़ें type: repository-content-selector
और संबंधित contentSelector
- name: docker-login-privilege type: repository-content-selector contentSelector: docker-login description: 'Login to Docker registry' repository: '*' actions: - read - browse
ब्लोबस्टोर्स और रिपोजिटरी
nexus_delete_default_repos: false
नेक्सस से रिपॉजिटरी को हटा दें प्रारंभिक डिफ़ॉल्ट कॉन्फ़िगरेशन स्थापित करें। यह कदम केवल पहली बार स्थापित होने पर निष्पादित किया जाता है (जब nexus_data_dir
को खाली पाया गया है)।
नेक्सस के लिए मूल डिफ़ॉल्ट कॉन्फ़िगरेशन से रिपॉजिटरी निकालें। यह कदम केवल पहली स्थापना (जब 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
खाली है) के दौरान किया nexus_data_dir
है।
nexus_blobstores: [] # example blobstore item : # - name: separate-storage # type: file # path: /mnt/custom/path # - name: s3-blobstore # type: S3 # config: # bucket: s3-blobstore # accessKeyId: "{{ VAULT_ENCRYPTED_KEY_ID }}" # secretAccessKey: "{{ VAULT_ENCRYPTED_ACCESS_KEY }}"
Blobstores बनाने के लिए। प्रारंभिक निर्माण के बाद एक ब्लॉबस्टोर पथ और रिपॉजिटरी ब्लॉस्टस्टोर को अपडेट नहीं किया जा सकता है (यहां कोई भी अपडेट पुन: प्रावधान पर ध्यान नहीं दिया जाएगा)।
एस 3 पर ब्लॉस्टस्टोर को कॉन्फ़िगर करना एक सुविधा के रूप में प्रदान किया गया है और ट्रैविस पर चलने वाले स्वचालित परीक्षणों का हिस्सा नहीं है। कृपया ध्यान दें कि S3 पर भंडारण केवल एडब्ल्यूएस पर तैनात उदाहरणों के लिए अनुशंसित है।
Blobstores बनाना प्रारंभिक पथ के बाद भंडारण पथ और भंडारण भंडार को अपडेट नहीं किया जा सकता है (पुन: स्थापित होने पर यहां किसी भी अपडेट को अनदेखा किया जाएगा)।
सुविधा के लिए S3 पर बूँद भंडारण को कॉन्फ़िगर करना प्रदान किया गया है। ध्यान दें कि S3 भंडारण केवल AWS पर तैनात उदाहरणों के लिए अनुशंसित है।
nexus_repos_maven_proxy: - name: central remote_url: 'https://repo1.maven.org/maven2/' layout_policy: permissive # maximum_component_age: -1 # maximum_metadata_age: 1440 # negative_cache_enabled: true # negative_cache_ttl: 1440 - name: jboss remote_url: 'https://repository.jboss.org/nexus/content/groups/public-jboss/' # maximum_component_age: -1 # maximum_metadata_age: 1440 # negative_cache_enabled: true # negative_cache_ttl: 1440 # example with a login/password : # - name: secret-remote-repo # remote_url: 'https://company.com/repo/secure/private/go/away' # remote_username: 'username' # remote_password: 'secret' # # maximum_component_age: -1 # # maximum_metadata_age: 1440 # # negative_cache_enabled: true # # negative_cache_ttl: 1440
ऊपर एक मावेन प्रॉक्सी कॉन्फ़िगरेशन उदाहरण है।
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_config_pypi: false nexus_config_docker: false nexus_config_raw: false nexus_config_rubygems: false nexus_config_bower: false nexus_config_npm: false nexus_config_gitlfs: false nexus_config_yum: false
ध्यान दें कि आपको कुछ सुरक्षा क्षेत्रों को सक्षम करने की आवश्यकता हो सकती है यदि आप मावेन के अलावा अन्य प्रकार के रिपॉजिटरी का उपयोग करना चाहते हैं। यह डिफ़ॉल्ट रूप से गलत है।
nexus_nuget_api_key_realm: false nexus_npm_bearer_token_realm: false nexus_docker_bearer_token_realm: false # required for docker anonymous access
दूरस्थ उपयोगकर्ता दायरे का उपयोग करके भी सक्षम किया जा सकता है
nexus_rut_auth_realm: true
और शीर्षक को परिभाषित करके अनुकूलित किया जा सकता है
nexus_rut_auth_header: "CUSTOM_HEADER"
अनुसूचित कार्य
nexus_scheduled_tasks: [] # # Example task to compact blobstore : # - name: compact-docker-blobstore # cron: '0 0 22 * * ?' # typeId: blobstore.compact # task_alert_email: alerts@example.org # optional # taskProperties: # blobstoreName: {{ nexus_blob_names.docker.blob }} # all task attributes are stored as strings by nexus internally # # Example task to purge maven snapshots # - name: Purge-maven-snapshots # cron: '0 50 23 * * ?' # typeId: repository.maven.remove-snapshots # task_alert_email: alerts@example.org # optional # taskProperties: # repositoryName: "*" # * for all repos. Change to a repository name if you only want a specific one # minimumRetained: "2" # snapshotRetentionDays: "2" # gracePeriodInDays: "2" # booleanTaskProperties: # removeIfReleased: true # # Example task to purge unused docker manifest and images # - name: Purge unused docker manifests and images # cron: '0 55 23 * * ?' # typeId: "repository.docker.gc" # task_alert_email: alerts@example.org # optional # taskProperties: # repositoryName: "*" # * for all repos. Change to a repository name if you only want a specific one # # Example task to purge incomplete docker uploads # - name: Purge incomplete docker uploads # cron: '0 0 0 * * ?' # typeId: "repository.docker.upload-purge" # task_alert_email: alerts@example.org # optional # taskProperties: # age: "24"
कॉन्फ़िगर करने के लिए निर्धारित कार्य । typeId
और टास्क-विशिष्ट taskProperties
/ booleanTaskProperties
का अनुमान लगाया जा सकता है:
- Java प्रकार से पदानुक्रम
org.sonatype.nexus.scheduling.TaskDescriptorSupport
- अपने ब्राउज़र में एक कार्य बनाने के लिए HTML फॉर्म की जाँच करना
- एक कार्य को मैन्युअल रूप से सेट करते समय ब्राउज़र में AJAX अनुरोध देखने से।
टास्क के गुणों को उनके प्रकार के आधार पर सही यम ब्लॉक में घोषित किया जाना चाहिए :
- सभी स्ट्रिंग गुणों के लिए
taskProperties
(यानी रिपॉजिटरी नाम, रिपॉजिटरी नाम, समय अवधि ...)। - सभी तार्किक गुणों के लिए
booleanTaskProperties
(यानी मूल रूप से नेक्सस निर्माण कार्य के ग्राफिकल इंटरफ़ेस में चेकबॉक्स)।
बैकअप
nexus_backup_configure: false nexus_backup_cron: '0 0 21 * * ?' # See cron expressions definition in nexus create task gui nexus_backup_dir: '/var/nexus-backup' nexus_restore_log: '{{ nexus_backup_dir }}/nexus-restore.log' nexus_backup_rotate: false nexus_backup_rotate_first: false nexus_backup_keep_rotations: 4 # Keep 4 backup rotation by default (current + last 3)
जब तक आप nexus_backup_configure
को true
स्विच नहीं करते, तब तक बैकअप सेट नहीं किया जाएगा।
इस स्थिति में, शेड्यूल किए गए स्क्रिप्ट कार्य को Nexus पर चलाने के लिए कॉन्फ़िगर किया जाएगा
nexus_backup_cron
में निर्दिष्ट अंतराल पर (डिफ़ॉल्ट हर दिन 21:00 है)।
विवरण के लिए देखें [इस कार्य के लिए ग्रूवी टेम्पलेट] (टेम्प्लेट / बैकअप। Groovy.j2)।
यह शेड्यूल किया गया कार्य आपके अन्य nexus_scheduled_tasks
से स्वतंत्र है
अपनी प्लेबुक में घोषणा करें।
यदि आप बैकअप को घुमाना / हटाना चाहते हैं, तो nexus_backup_rotate: true
सेट nexus_backup_rotate: true
और उन बैकअप की संख्या को कॉन्फ़िगर करें जिन्हें आप nexus_backup_keep_rotations
(डिफ़ॉल्ट 4) के साथ सहेजना चाहते हैं।
रोटेशन का उपयोग करते समय, यदि आप बैकअप प्रक्रिया के दौरान अतिरिक्त डिस्क स्थान बचाना चाहते हैं,
आप nexus_backup_rotate_first: true
सेट कर सकते हैं nexus_backup_rotate_first: true
। / . . ,
, .
playbook -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(, 2017-12-17-21-00-00 17 2017 21:00
nexus
: . ,
nexus_purge
, nexus .
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=true
nexus_default_admin_password: 'admin123'
playbook . Nexus , nexus_admin_password
.
, . nexus_admin_password
:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPassword
Nexus Sonatype: https://t.me/ru_nexus_sonatype