Sonatype Nexus هڪ مربوط پليٽ فارم آهي جنهن ذريعي ڊولپرز جاوا (Maven) انحصار، Docker، Python، Ruby، NPM، Bower تصويرون، RPM پيڪيجز، gitlfs، Apt، Go، Nuget، پراکسي، اسٽور ۽ منظم ڪري سگهن ٿا ۽ انهن جي سافٽ ويئر سيڪيورٽي کي ورهائي سگهن ٿا.
توهان کي Sonatype Nexus جي ضرورت ڇو آهي؟
- خانگي نوادرات کي محفوظ ڪرڻ لاء؛
- ڪيشنگ آرٽيڪلز لاءِ جيڪي انٽرنيٽ تان ڊائون لوڊ ڪيا ويا آهن؛
بنيادي Sonatype Nexus پيڪيج ۾ مدد ڪيل آرٽيڪل:
- جاوا، ماون (جر)
- Docker
- پٿون (پائپ)
- روبي (جيم)
- اين پي ايم
- ٻرندڙ
- يوم (rpm)
- gitlfs
- را
- اپٽ (ڊيب)
- Go
- نانگ
ڪميونٽي جي مدد ڪيل آرٽيڪل:
- موسيقار
- Conan
- CPAN
- ايل پي اي
- هيلمٽ
- P2
- R
Sonatype Nexus استعمال ڪندي انسٽال ڪرڻ https://github.com/ansible-ThoTeam/nexus3-oss
گه
- انٽرنيٽ تي جوابي استعمال ڪرڻ بابت پڙهو.
- انسٽال ڪريو قابل قبول
pip install ansible
ورڪ اسٽيشن تي جتي راند جو ڪتاب هلندو آهي. - سيٽ
geerlingguy.java ورڪ اسٽيشن تي جتي راند جو ڪتاب هلندو آهي. - سيٽ
geerlingguy.apache ورڪ اسٽيشن تي جتي راند جو ڪتاب هلندو آهي. - اهو ڪردار CentOS 7، Ubuntu Xenial (16.04) ۽ Bionic (18.04)، Debian Jessie ۽ Stretch تي آزمايو ويو آهي.
jmespath
لائبريري کي لازمي طور تي ڪم اسٽيشن تي نصب ڪيو وڃي جتي پلي بڪ هلندي آهي. انسٽال ڪرڻ لاءِ:sudo pip install -r requirements.txt
- پلي بڪ فائل محفوظ ڪريو (هيٺ ڏنل مثال) nexus.yml فائل ۾
- Nexus تنصيب کي هلائڻ
ansible-playbook -i host nexus.yml
مثال طور جوابي-پلي بڪ انسٽال ڪرڻ لاءِ Nexus بغير LDAP سان Maven (java)، Docker، Python، Ruby، NPM، Bower، RPM ۽ gitlfs repositories.
---
- 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: [email protected]
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 جو جديد دستياب ورزن انسٽال ڪندو. توهان متغير کي تبديل ڪندي نسخي کي درست ڪري سگھو ٿا nexus_version
. ڏسو دستياب نسخن تي
جيڪڏهن توهان نئين ورزن ۾ تبديل ڪندا آهيو، ڪردار توهان جي Nexus تنصيب کي اپڊيٽ ڪرڻ جي ڪوشش ڪندو.
جيڪڏهن توهان Nexus جو جديد نسخو استعمال ڪري رهيا آهيو، توهان کي پڪ ڪرڻ گهرجي ته توهان خاصيتون استعمال نه ڪري رهيا آهيو جيڪي نصب ٿيل رليز ۾ موجود نه آهن (مثال طور، 3.8.0 کان وڌيڪ Nexus لاءِ yum repositories جي ميزباني موجود آهي، git lfs repo 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 OS صارف ۽ گروپ
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
استعمال ڪندڙ ۽ گروپ جيڪي Nexus فائلن جي مالڪي ڪندا هئا ۽ خدمت کي هلائيندا هئا جيڪڏهن هڪ غائب آهي ته ڪردار طرفان ٺاهي ويندي.
nexus_os_user_home_dir: '/home/nexus'
Nexus استعمال ڪندڙ لاءِ ڊفالٽ گهر ڊاريڪٽري کي تبديل ڪرڻ جي اجازت ڏيو
Nexus مثال جي ڊائريڪٽري
nexus_installation_dir: '/opt'
nexus_data_dir: '/var/nexus'
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"
Nexus Catalogs.
nexus_installation_dir
انسٽال ٿيل executable فائلن تي مشتمل آهيnexus_data_dir
سڀني ترتيبن، مخزن ۽ ڊائون لوڊ ڪيل نمونن تي مشتمل آهي. ڪسٽم blobstore رستا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 لاءِ ڊفالٽ سيٽنگون آهن. مهرباني ڪري انهن قدرن کي تبديل نه ڪريو جيڪڏهن توهان نه پڙهيو آهي
ٻي ڊيڄاريندڙ طور، هتي مٿي ڏنل دستاويز مان هڪ اقتباس آهي:
ڪارڪردگي بهتر ڪرڻ جي ڪوشش ۾ تجويز ڪيل قدرن کان وڌيڪ JVM هيپ ميموري کي وڌائڻ جي سفارش نه ڪئي وئي آهي. اهو ٿي سگهي ٿو اصل ۾ مخالف اثر، نتيجي ۾ آپريٽنگ سسٽم لاء غير ضروري ڪم.
ايڊمنسٽريٽر پاسورڊ
nexus_admin_password: 'changeme'
سيٽ اپ لاءِ ”منتظم“ کاتي جو پاسورڊ. اهو صرف پهرين ڊفالٽ تنصيب تي ڪم ڪري ٿو. مھرباني ڪري ڏسو [منتظم پاسورڊ تبديل ڪريو پھرين انسٽاليشن کان پوءِ](# change-admin-password-after-first-install) جيڪڏھن توھان ان کي تبديل ڪرڻ چاھيو ٿا بعد ۾ ڪردار استعمال ڪندي.
اها سختي سان صلاح ڏني وئي آهي ته توهان جو پاسورڊ پلي بڪ ۾ صاف متن ۾ محفوظ نه ڪريو، پر استعمال ڪرڻ لاء [اننسيبل-واٽ انڪريپشن] (
ڊفالٽ طور گمنام رسائي
nexus_anonymous_access: false
گمنام رسائي ڊفالٽ طور بند ٿيل آهي. بابت وڌيڪ پڙهو
عوامي ميزبان نالو
nexus_public_hostname: 'nexus.vm'
nexus_public_scheme: https
مڪمل طور تي قابل قبول ڊومين جو نالو ۽ اسڪيم (https يا http) جنهن جي تحت Nexus مثال پنهنجي گراهڪن لاءِ دستياب هوندو.
هن ڪردار لاءِ API رسائي
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 }}"
اهي متغير ڪنٽرول ڪن ٿا ته ڪردار ڪيئن ڳنڍجي ٿو Nexus API سان مهيا ڪرڻ لاءِ.
صرف ترقي يافته استعمال ڪندڙن لاء. توھان شايد انھن ڊفالٽ سيٽنگن کي تبديل ڪرڻ نٿا چاھيو
هڪ ريورس پراکسي قائم ڪرڻ
httpd_setup_enable: false
httpd_server_name: "{{ nexus_public_hostname }}"
httpd_default_admin_email: "[email protected]"
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
سيٽ
هن کي ڪرڻ لاءِ توهان کي انسٽال ڪرڻو پوندو 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
(ڊفالٽ طور) مٿي ڏنل سرٽيفڪيٽن کي توهان جي راند بڪ ڊاريڪٽري ۾ موجود هجڻ گهرجي ۽ سرور ڏانهن نقل ڪيو ويندو ۽ اپاچي ۾ ترتيب ڏنو ويندو.
جيڪڏهن توهان سرور تي موجود سرٽيفڪيٽ استعمال ڪرڻ چاهيو ٿا، انسٽال ڪريو 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: "[email protected]"
مقرر ڪريو ڊفالٽ منتظم اي ميل پتو
LDAP ترتيب
LDAP ڪنيڪشن ۽ سيڪيورٽي ريم ڊفالٽ طور بند ٿيل آهن
nexus_ldap_realm: false
ldap_connections: []
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'
مثال LDAP ترتيب جي سادي تصديق لاءِ (DSA اڪائونٽ استعمال ڪندي):
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
مثال LDAP ٺاھ جوڙ لاءِ سادي تصديق (DSA اڪائونٽ استعمال ڪندي) + ڪردارن جي طور تي ميپ ٿيل گروپ:
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
مثال LDAP ٺاھ جوڙ لاءِ سادي تصديق (DSA اڪائونٽ استعمال ڪندي) + گروپن کي متحرڪ طور نقشي طور ڪردارن جي طور تي:
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 هن جو مطلب آهي)
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 ۾.
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
۽ لاڳاپيلcontentSelector
- name: docker-login-privilege
type: repository-content-selector
contentSelector: docker-login
description: 'Login to Docker registry'
repository: '*'
actions:
- read
- browse
Blobstores ۽ repositories
nexus_delete_default_repos: false
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
خالي).
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 }}"
S3 تي بلب اسٽور کي ترتيب ڏيڻ هڪ سهولت جي طور تي مهيا ڪيو ويو آهي ۽ اهو حصو نه آهي خودڪار ٽيسٽن جو اسان ٽريوس تي هلون ٿا. مهرباني ڪري نوٽ ڪريو ته S3 تي اسٽوريج صرف AWS تي ترتيب ڏنل مثالن لاءِ سفارش ڪئي وئي آهي.
تخليق
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"
ماٿي
ڪنفگريشن
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
Docker، Pypi، Raw، Rubygems، Bower، NPM، Git-LFS ۽ yum مخزن جا قسم:
ڏسڻ defaults/main.yml
انهن اختيارن لاء:
Docker، Pypi، Raw، Rubygems، Bower، NPM، Git-LFS ۽ yum repositories ڊفالٽ طور بند ٿيل آھن:
ڏسو 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
Remote User Realm پڻ استعمال ڪندي فعال ٿي سگھي ٿو
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: [email protected] # 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: [email protected] # 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: [email protected] # 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: [email protected] # optional
# taskProperties:
# age: "24"
typeId
۽ مخصوص ڪمtaskProperties
/booleanTaskProperties
توهان اندازو لڳائي سگهو ٿا يا ته:
- جاوا قسم جي درجه بندي کان
org.sonatype.nexus.scheduling.TaskDescriptorSupport
- توھان جي برائوزر ۾ HTML ٽاسڪ ٺاھڻ جو فارم چيڪ ڪريو
- برائوزر ۾ AJAX درخواستن کي ڏسڻ کان جڏهن دستي طور تي هڪ ڪم کي ترتيب ڏيو.
ٽاسڪ پراپرٽيز کي ان جي قسم جي لحاظ سان صحيح يامل بلاڪ ۾ اعلان ڪيو وڃي:
taskProperties
سڀني اسٽرنگ ملڪيتن لاءِ (يعني مخزن جا نالا، مخزن جا نالا، وقت جا عرصو...).booleanTaskProperties
سڀني منطقي ملڪيتن لاءِ (يعني خاص طور تي چيڪ بڪسس جي GUI ۾ گنج ٺاھڻ واري ڪم).
بيڪ اپ
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 هر روز).
تفصيل لاءِ ڏسو [هن ڪم لاءِ گرووي ٽيمپليٽ](templates/backup.groovy.j2)
هي مقرر ڪيل ڪم ٻين کان آزاد آهي nexus_scheduled_tasks
جيڪو توهان
توهان جي playbook ۾ اعلان.
جيڪڏھن توھان چاھيو ٿا گھمڻ / بيڪ اپ کي ختم ڪريو، انسٽال ڪريو nexus_backup_rotate: true
۽ بيڪ اپ جو تعداد ترتيب ڏيو جيڪو توھان استعمال ڪرڻ سان محفوظ ڪرڻ چاھيو ٿا nexus_backup_keep_rotations
(ڊفالٽ 4).
جڏهن گردش استعمال ڪندي، جيڪڏهن توهان بيڪ اپ جي عمل دوران اضافي ڊسڪ اسپيس بچائڻ چاهيو ٿا،
توهان انسٽال ڪري سگهو ٿا 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'
اهو توهان جي راند بڪ ۾ تبديل نه ٿيڻ گهرجي. هي متغير ڊفالٽ Nexus منتظم پاسورڊ سان ڀريو پيو آهي جڏهن پهريون ڀيرو انسٽال ڪيو ويو آهي ۽ انهي کي يقيني بڻائي ٿو ته اسان منتظم پاسورڊ تبديل ڪري سگهون ٿا nexus_admin_password
.
جيڪڏهن توهان پهرين انسٽاليشن کان پوءِ ايڊمنسٽريٽر پاسورڊ تبديل ڪرڻ چاهيو ٿا، ته توهان ان کي عارضي طور تي ڪمانڊ لائن مان پراڻي پاسورڊ ۾ تبديل ڪري سگهو ٿا. تبديلي کان پوء nexus_admin_password
توهان جي راند بڪ ۾ توهان هلائي سگهو ٿا:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPassword
Nexus Sonatype تي ٽيليگرام چينل:
صرف رجسٽرڊ استعمال ڪندڙ سروي ۾ حصو وٺي سگهن ٿا.
توهان ڪهڙن آثارن جا ذخيرا استعمال ڪندا آهيو؟
-
Sonatype Nexus مفت آهي
-
سونيٽائپ Nexus ادا ڪيو
-
مصنوعي مفت آهي
-
فني ادائگي
-
بندر
-
پل
9 صارفين ووٽ ڪيو. 3 استعمال ڪندڙن کي روڪيو ويو.
جو ذريعو: www.habr.com