پرو ہوسٹر > بلاگ > انتظامیہ > انفراسٹرکچر کو کوڈ اپروچ کے طور پر استعمال کرتے ہوئے Nexus Sonatype کو انسٹال اور کنفیگر کرنا
انفراسٹرکچر کو کوڈ اپروچ کے طور پر استعمال کرتے ہوئے Nexus Sonatype کو انسٹال اور کنفیگر کرنا
Sonatype Nexus ایک مربوط پلیٹ فارم ہے جس کے ذریعے ڈویلپر جاوا (Maven) کے انحصار، Docker، Python، Ruby، NPM، Bower امیجز، RPM پیکیجز، gitlfs، Apt، Go، Nuget کو پراکسی، اسٹور اور ان کا نظم کرسکتے ہیں اور اپنی سافٹ ویئر سیکیورٹی کو تقسیم کرسکتے ہیں۔
آپ کو سوناٹائپ گٹھ جوڑ کی ضرورت کیوں ہے؟
نجی نمونے کو ذخیرہ کرنے کے لیے؛
انٹرنیٹ سے ڈاؤن لوڈ کیے گئے نمونے کیش کرنے کے لیے؛
پہلے سے طے شدہ اقدار کے ساتھ متغیرات (دیکھیں۔ default/main.yml):
عمومی متغیرات
nexus_version: ''
nexus_timezone: 'UTC'
بطور ڈیفالٹ، کردار Nexus کا تازہ ترین دستیاب ورژن انسٹال کرے گا۔ آپ متغیر کو تبدیل کر کے ورژن کو ٹھیک کر سکتے ہیں۔ nexus_version. پر دستیاب ورژن دیکھیں https://www.sonatype.com/download-oss-sonatype.
اگر آپ نئے ورژن میں تبدیل ہوتے ہیں، تو کردار آپ کی Nexus انسٹالیشن کو اپ ڈیٹ کرنے کی کوشش کرے گا۔
اگر آپ Nexus کا تازہ ترین سے پرانا ورژن استعمال کر رہے ہیں، تو آپ کو یہ یقینی بنانا چاہیے کہ آپ ایسی خصوصیات استعمال نہیں کر رہے ہیں جو انسٹال کردہ ریلیز میں دستیاب نہیں ہیں (مثال کے طور پر، yum repositories کی میزبانی 3.8.0 سے زیادہ نیکسس کے لیے دستیاب ہے، git lfs repo 3.3.0 وغیرہ سے زیادہ گٹھ جوڑ کے لیے)
nexus timezone جاوا ٹائم زون کا نام ہے، جو nexus_scheduled کاموں کے لیے درج ذیل کرون اظہار کے ساتھ مل کر مفید ہو سکتا ہے۔
جاوا کنکشن کے عمل کا پورٹ اور سیاق و سباق کا راستہ۔ 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 کے لیے پہلے سے طے شدہ ترتیبات ہیں۔ براہ کرم ان اقدار کو تبدیل نہ کریں۔اگر آپ نے نہیں پڑھا ہے۔ گٹھ جوڑ کے نظام کی ضروریات میموری سیکشن اور سمجھ میں نہیں آتا کہ وہ کیا کر رہے ہیں۔
دوسری وارننگ کے طور پر، مندرجہ بالا دستاویز کا ایک اقتباس یہ ہے:
کارکردگی کو بہتر بنانے کی کوشش میں JVM ہیپ میموری کو تجویز کردہ اقدار سے زیادہ بڑھانے کی سفارش نہیں کی جاتی ہے۔ اس کا اصل میں الٹا اثر ہو سکتا ہے، جس کے نتیجے میں آپریٹنگ سسٹم کے لیے غیر ضروری کام ہو سکتا ہے۔
ایڈمنسٹریٹر پاس ورڈ
nexus_admin_password: 'changeme'
سیٹ اپ کے لیے "ایڈمن" اکاؤنٹ کا پاس ورڈ۔ یہ صرف پہلی ڈیفالٹ انسٹالیشن پر کام کرتا ہے۔. براہ کرم دیکھیں [پہلی انسٹالیشن کے بعد ایڈمن پاس ورڈ تبدیل کریں](# change-admin-password-after-first-install) اگر آپ بعد میں کسی کردار کا استعمال کرتے ہوئے اسے تبدیل کرنا چاہتے ہیں۔
اس کی سختی سے سفارش کی جاتی ہے کہ آپ اپنے پاس ورڈ کو پلے بک میں واضح متن میں محفوظ نہ کریں، بلکہ [انسیبل والٹ انکرپشن] استعمال کریں۔https://docs.ansible.com/ansible/latest/user_guide/vault.html) (یا تو ان لائن یا ایک علیحدہ فائل میں جس میں بھری ہوئی ہے جیسے شامل_وار)
ڈیفالٹ کے ذریعے گمنام رسائی
nexus_anonymous_access: false
گمنام رسائی بطور ڈیفالٹ غیر فعال ہے۔ کے بارے میں مزید پڑھیں گمنام رسائی.
یہ متغیرات کنٹرول کرتے ہیں کہ کردار کس طرح 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 (بطور ڈیفالٹ) مندرجہ بالا سرٹیفکیٹس آپ کی پلے بک ڈائرکٹری میں موجود ہونے چاہئیں اور سرور پر کاپی کر کے اپاچی میں کنفیگر کیے جائیں گے۔
اگر آپ سرور پر موجود سرٹیفکیٹ استعمال کرنا چاہتے ہیں تو انسٹال کریں۔ 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
RЎRїReSЃRѕRє مراعات ترتیبات کے لئے. دستاویزات اور 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 install ابتدائی ڈیفالٹ کنفیگریشن سے ڈیفالٹ blobstore کو حذف کریں۔ یہ صرف اس صورت میں کیا جاسکتا ہے۔ nexus_delete_default_repos: true اور تمام کنفیگر شدہ ریپوزٹریز (نیچے دیکھیں) میں واضح ہے۔ blob_store: custom. یہ مرحلہ صرف پہلی بار انسٹال کرنے پر عمل میں لایا جاتا ہے (جب nexus_data_dir خالی پایا گیا ہے)۔
بلاب اسٹوریج (بائنری آرٹفیکٹس) کو ہٹانا ابتدائی کنفیگریشن سے بطور ڈیفالٹ غیر فعال ہے۔ بلاب اسٹوریج (بائنری نمونے) کو ہٹانے کے لیے، آف کریں۔ nexus_delete_default_repos: true. یہ قدم صرف پہلی تنصیب کے دوران انجام دیا جاتا ہے (جب nexus_data_dir خالی)۔
بلاب اسٹورز بنانا. ابتدائی تخلیق کے بعد ایک بلاب اسٹور پاتھ اور ریپوزٹری بلاب اسٹور کو اپ ڈیٹ نہیں کیا جا سکتا (یہاں کسی بھی اپ ڈیٹ کو دوبارہ پروویژننگ پر نظر انداز کر دیا جائے گا)۔
S3 پر بلاب اسٹور کو ترتیب دینا ایک سہولت کے طور پر فراہم کیا گیا ہے اور یہ ان خودکار ٹیسٹوں کا حصہ نہیں ہے جو ہم ٹریوس پر چلاتے ہیں۔ براہ کرم نوٹ کریں کہ 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 repositories بطور ڈیفالٹ غیر فعال ہیں:
ملاحظہ کریں defaults/main.yml ان اختیارات کے لیے:
براہ کرم نوٹ کریں کہ اگر آپ ماون کے علاوہ دیگر اقسام کے ذخیروں کو استعمال کرنا چاہتے ہیں تو آپ کو کچھ حفاظتی دائرہ کار کو فعال کرنے کی ضرورت پڑ سکتی ہے۔ یہ بطور ڈیفالٹ غلط ہے۔
جب تک آپ سوئچ نہیں کرتے بیک اپ کو کنفیگر نہیں کیا جائے گا۔ 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_default_admin_password: 'admin123'
اسے آپ کی پلے بک میں تبدیل نہیں کیا جانا چاہیے۔. یہ متغیر پہلے سے انسٹال ہونے پر ڈیفالٹ Nexus ایڈمن پاس ورڈ کے ساتھ آباد ہوتا ہے اور اس بات کو یقینی بناتا ہے کہ ہم ایڈمن پاس ورڈ کو تبدیل کر سکتے ہیں۔ nexus_admin_password.
اگر آپ پہلی انسٹالیشن کے بعد ایڈمنسٹریٹر کا پاس ورڈ تبدیل کرنا چاہتے ہیں تو آپ اسے عارضی طور پر کمانڈ لائن سے پرانے پاس ورڈ میں تبدیل کر سکتے ہیں۔ تبدیلی کے بعد nexus_admin_password آپ اپنی پلے بک میں چلا سکتے ہیں: