ProHoster > Blog > Pentadbiran > Memasang dan mengkonfigurasi Nexus Sonatype menggunakan infrastruktur sebagai pendekatan kod
Memasang dan mengkonfigurasi Nexus Sonatype menggunakan infrastruktur sebagai pendekatan kod
Sonatype Nexus ialah platform bersepadu yang melaluinya pembangun boleh membuat proksi, menyimpan dan mengurus kebergantungan Java (Maven), Docker, Python, Ruby, NPM, imej Bower, pakej RPM, gitlfs, Apt, Go, Nuget dan mengedarkan keselamatan perisian mereka.
Mengapa anda memerlukan Sonatype Nexus?
Untuk menyimpan artifak persendirian;
Untuk caching artifak yang dimuat turun dari Internet;
Artifak yang disokong dalam pakej asas Sonatype Nexus:
Pembolehubah dengan nilai lalai (lihat default/main.yml):
Pembolehubah umum
nexus_version: ''
nexus_timezone: 'UTC'
Secara lalai, peranan akan memasang versi terkini Nexus yang tersedia. Anda boleh membetulkan versi dengan menukar pembolehubah nexus_version. Lihat versi yang tersedia di https://www.sonatype.com/download-oss-sonatype.
Jika anda menukar kepada versi yang lebih baharu, peranan akan cuba mengemas kini pemasangan Nexus anda.
Jika anda menggunakan versi Nexus yang lebih lama daripada yang terkini, anda harus memastikan bahawa anda tidak menggunakan ciri yang tidak tersedia dalam keluaran yang dipasang (contohnya, mengehos repositori yum tersedia untuk nexus yang lebih besar daripada 3.8.0, git lfs repo untuk nexus lebih besar daripada 3.3.0 dsb.)
nexus timezone ialah nama zon waktu Java, yang boleh berguna dalam kombinasi dengan ungkapan cron berikut untuk tugasan nexus_scheduled.
Laluan pelabuhan dan konteks proses sambungan Java. nexus_default_context_path mesti mengandungi garis miring ke hadapan apabila ia ditetapkan, cth: nexus_default_context_path: '/nexus/'.
Pengguna dan Kumpulan OS Nexus
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
Pengguna dan kumpulan yang digunakan untuk memiliki fail Nexus dan menjalankan perkhidmatan akan dibuat oleh peranan jika fail tersebut tiada.
nexus_os_user_home_dir: '/home/nexus'
Benarkan menukar direktori rumah lalai untuk pengguna nexus
nexus_installation_dir mengandungi fail boleh laku yang dipasang
nexus_data_dir mengandungi semua konfigurasi, repositori dan artifak yang dimuat turun. Laluan blobstore tersuai nexus_data_dir boleh disesuaikan, lihat di bawah nexus_blobstores.
nexus_tmp_dir mengandungi semua fail sementara. Laluan lalai untuk redhat telah dialihkan daripada /tmp untuk mengatasi masalah yang berpotensi dengan prosedur pembersihan automatik. Lihat #168.
Ini ialah tetapan lalai untuk Nexus. Tolong jangan ubah nilai iniJika anda belum membaca bahagian memori keperluan sistem nexus dan tidak faham apa yang mereka lakukan.
Sebagai amaran kedua, berikut adalah petikan daripada dokumen di atas:
Ia tidak disyorkan untuk meningkatkan memori timbunan JVM melebihi nilai yang disyorkan dalam usaha untuk meningkatkan prestasi. Ini sebenarnya mungkin mempunyai kesan sebaliknya, mengakibatkan kerja yang tidak perlu untuk sistem pengendalian.
Kata laluan pentadbir
nexus_admin_password: 'changeme'
Kata laluan akaun "admin" untuk persediaan. Ini hanya berfungsi pada pemasangan lalai pertama. Sila lihat [Tukar kata laluan pentadbir selepas pemasangan pertama](# change-admin-password-after-first-install) jika anda mahu menukarnya kemudian menggunakan peranan.
Adalah amat disyorkan untuk tidak menyimpan kata laluan anda dalam teks yang jelas dalam buku main, tetapi menggunakan [ansible-vault encryption] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (sama ada dalam talian atau dalam fail berasingan yang dimuatkan dengan cth. include_vars)
Akses tanpa nama secara lalai
nexus_anonymous_access: false
Akses tanpa nama dilumpuhkan secara lalai. Baca lebih lanjut mengenai akses tanpa nama.
Pembolehubah ini mengawal cara peranan menyambung kepada API Nexus untuk peruntukan. Untuk pengguna lanjutan sahaja. Anda mungkin tidak mahu menukar tetapan lalai ini
Tetapkan Proksi Terbalik SSL.
Untuk melakukan ini, anda perlu memasang httpd. Nota: bila untuk httpd_setup_enable tetapkan nilaitrue, kenalan nexus 127.0.0.1:8081, oleh itu tiada boleh diakses terus melalui port HTTP 8081 daripada alamat IP luaran.
Nama hos lalai yang digunakan ialah nexus_public_hostname. Jika anda memerlukan nama yang berbeza atas sebab tertentu, anda boleh menetapkan httpd_server_name dengan makna yang berbeza.
Π‘ httpd_copy_ssl_files: true (secara lalai) sijil di atas harus wujud dalam direktori buku permainan anda dan akan disalin ke pelayan dan dikonfigurasikan dalam apache.
Jika anda ingin menggunakan sijil sedia ada pada pelayan, pasang httpd_copy_ssl_files: false dan sediakan pembolehubah berikut:
# 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 adalah pilihan dan harus dibiarkan tidak ditetapkan jika anda tidak mahu menyesuaikan fail rantai
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
Senarai keistimewaan untuk tetapan. Lihat dokumentasi dan GUI untuk menyemak pembolehubah yang perlu ditetapkan bergantung pada jenis keistimewaan.
Elemen ini digabungkan dengan nilai lalai berikut:
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
Senarai pengguna/akaun tempatan (bukan LDAP) untuk dibuat dalam nexus.
Senarai pengguna/akaun tempatan (bukan LDAP) untuk dibuat dalam Nexus.
Ldap pemetaan pengguna/peranan. negeri absent akan mengalih keluar peranan daripada pengguna sedia ada jika sudah wujud.
Pengguna Ldap tidak dipadamkan. Cuba untuk menetapkan peranan untuk pengguna yang tidak wujud akan mengakibatkan ralat.
Pemilih kandungan
nexus_content_selectors:
- name: docker-login
description: Selector for docker login privilege
search_expression: format=="docker" and path=~"/v2/"
Untuk maklumat lanjut tentang pemilih kandungan, lihat Dokumentasi.
Untuk menggunakan pemilih kandungan, tambahkan keistimewaan baharu dengan type: repository-content-selector dan relevancontentSelector
Padamkan repositori daripada konfigurasi lalai awal pemasangan nexus. Langkah ini hanya dilaksanakan pada pemasangan kali pertama (apabila nexus_data_dir telah dikesan kosong).
Mengalih keluar repositori daripada konfigurasi lalai lalai untuk Nexus. Langkah ini hanya dilakukan semasa pemasangan pertama (apabila nexus_data_dir kosong).
nexus_delete_default_blobstore: false
Padamkan blobstore lalai daripada konfigurasi lalai awal pemasangan nexus. Ini boleh dilakukan hanya jika nexus_delete_default_repos: true dan semua repositori yang dikonfigurasikan (lihat di bawah) mempunyai eksplisit blob_store: custom. Langkah ini hanya dilaksanakan pada pemasangan kali pertama (apabila nexus_data_dir telah dikesan kosong).
Mengalih keluar storan gumpalan (artifak binari) dilumpuhkan secara lalai daripada konfigurasi awal. Untuk mengalih keluar storan gumpalan (artifak binari), matikan nexus_delete_default_repos: true. Langkah ini hanya dilakukan semasa pemasangan pertama (apabila nexus_data_dir kosong).
Blobstores untuk mencipta. Laluan blobstore dan blobstore repositori tidak boleh dikemas kini selepas penciptaan awal (sebarang kemas kini di sini akan diabaikan semasa penyediaan semula).
Mengkonfigurasi blobstore pada S3 disediakan sebagai kemudahan dan bukan sebahagian daripada ujian automatik yang kami jalankan pada travis. Sila ambil perhatian bahawa penyimpanan pada S3 hanya disyorkan untuk keadaan yang digunakan pada AWS.
Ciptaan Blobstores. Laluan storan dan repositori storan tidak boleh dikemas kini selepas penciptaan awal (sebarang kemas kini di sini akan diabaikan apabila dipasang semula).
Menyediakan storan gumpalan pada S3 disediakan sebagai kemudahan. Sila ambil perhatian bahawa storan S3 hanya disyorkan untuk keadaan yang digunakan pada AWS.
Ketiga-tiga jenis repositori digabungkan dengan nilai lalai berikut:
_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 dan jenis repositori yum:
lihat defaults/main.yml untuk pilihan ini:
Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS dan repositori yum dilumpuhkan secara lalai:
Lihat defaults/main.yml untuk pilihan ini:
Sila ambil perhatian bahawa anda mungkin perlu mendayakan skop keselamatan tertentu jika anda ingin menggunakan jenis repositori lain selain daripada maven. Ini palsu secara lalai
Sandaran tidak akan dikonfigurasikan sehingga anda bertukar nexus_backup_configure Π² true.
Dalam kes ini, tugas skrip yang dijadualkan akan dikonfigurasikan untuk dijalankan pada Nexus
pada selang waktu yang dinyatakan dalam nexus_backup_cron (lalai 21:00 setiap hari).
Lihat [template groovy untuk tugasan ini](templates/backup.groovy.j2) untuk butiran.
Tugasan berjadual ini tidak bergantung pada orang lain nexus_scheduled_tasksyang awak
umumkan dalam buku permainan anda.
Jika anda ingin memutar/memadam sandaran, pasang nexus_backup_rotate: true dan konfigurasikan bilangan sandaran yang anda ingin simpan menggunakan nexus_backup_keep_rotations (lalai 4).
Apabila menggunakan putaran, jika anda ingin menjimatkan ruang cakera tambahan semasa proses sandaran,
Anda boleh memasang nexus_backup_rotate_first: true. Ini akan mengkonfigurasi pra-putaran/pemadaman sebelum sandaran. Secara lalai, putaran berlaku selepas sandaran dibuat. Sila ambil perhatian bahawa dalam kes ini sandaran lama
akan dipadamkan sebelum sandaran semasa dibuat.
Prosedur pemulihan
Jalankan buku main dengan parameter -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(contohnya, 2017-12-17-21-00-00 untuk 17 Disember 2017 pada 21:00
Mengalih keluar nexus
Amaran: Ini akan memadamkan data semasa anda sepenuhnya. Pastikan anda membuat sandaran lebih awal jika perlu
Gunakan pembolehubah nexus_purgejika anda perlu memulakan semula dari awal dan memasang semula contoh nexus dengan semua data dialih keluar.
Tukar kata laluan pentadbir selepas pemasangan pertama
nexus_default_admin_password: 'admin123'
Ini tidak boleh diubah dalam buku main anda. Pembolehubah ini diisi dengan kata laluan pentadbir Nexus lalai apabila pertama kali dipasang dan memastikan bahawa kami boleh menukar kata laluan pentadbir kepada nexus_admin_password.
Jika anda ingin menukar kata laluan pentadbir selepas pemasangan pertama, anda boleh menukarnya buat sementara waktu kepada kata laluan lama dari baris arahan. Selepas perubahan nexus_admin_password dalam buku permainan anda, anda boleh menjalankan: