Sonatype Nexus เปเบเบฑเบเปเบเบฅเบฐเบเบฐเบเบญเบกเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเปเบเบเบเปเบฒเบเบเบตเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบปเบงเปเบเบ, เปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบเบเบถเปเบเบเบฑเบ Java (Maven), Docker, Python, Ruby, NPM, Bower images, RPM packages, gitlfs, Apt, Go, Nuget, เปเบฅเบฐเปเบเบเบขเบฒเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบเบญเบเปเบงเบเบญเบเบเบงเบเปเบเบปเบฒ.
เปเบเบฑเบเบซเบเบฑเบเบเปเบฒเบเบเปเบญเบเบเบฒเบ Sonatype Nexus?
- เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบงเบฑเบเบเบธเบเบนเบฎเบฒเบเบชเปเบงเบเบเบปเบง;
- เบชเปเบฒเบฅเบฑเบ caching artifacts เบเบตเปเบเบทเบเบเบฒเบงเปเบซเบผเบเบเบฒเบเบญเบดเบเปเบเบตเปเบเบฑเบ;
Artifacts เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบขเบนเปเปเบเบเบธเบเบเบทเปเบเบเบฒเบ Sonatype Nexus:
- Java, Maven (เบเบฐเบเปเบญเบ)
- Docker
- Python (pip)
- Ruby (เปเบเปเบงเบเบฐเปเบชเบตเบ)
- เบ
- Bowers
- เบเปเบฒ (rpm)
- gitlfs
- เบงเบฑเบเบเบธเบเบดเบ
- Apt (deb)
- Go
- เบเบฐเปเบซเบเบ
เบเบธเบกเบเบปเบเบชเบฐเปเบฑเบเบชเบฐเปเบนเบเบชเบดเปเบเบเบฐเบเบดเบ:
- เบเบฐ
- Conan
- เบ. เบช
- ELPA
- Helm
- P2
- R
เบเบฒเบเบเบดเบเบเบฑเปเบ Sonatype Nexus เปเบเบเปเบเป https://github.com/ansible-ThoTeam/nexus3-oss
เบเบงเบฒเบกเบเปเบญเบเบเบฒเบ
- เบญเปเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเป ansible เปเบเบญเบดเบเปเบเบตเปเบเบฑเบ.
- เบเบดเบเบเบฑเปเบ ansible
pip install ansible
เปเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป playbook เปเบฅเปเบ. - เบเบฑเปเบ
geerlingguy.java เปเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป playbook เปเบฅเปเบ. - เบเบฑเปเบ
geerlingguy.apache เปเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป playbook เปเบฅเปเบ. - เบเบปเบเบเบฒเบเบเบตเปเปเบเปเบเบทเบเบเบปเบเบชเบญเบเบขเบนเปเปเบ CentOS 7, Ubuntu Xenial (16.04) เปเบฅเบฐ Bionic (18.04), Debian Jessie เปเบฅเบฐ Stretch
jmespath
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบเบตเป playbook เบเปเบฒเบฅเบฑเบเปเบฅเปเบ. เบเบฒเบเบเบดเบเบเบฑเปเบ:sudo pip install -r requirements.txt
- เบเบฑเบเบเบถเบเปเบเบฅเป playbook (เบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป) เปเบชเปเปเบเบฅเป nexus.yml
- เบเปเบฒเปเบเบตเบเบเบฒเบเบเบดเบเบเบฑเปเบ Nexus
ansible-playbook -i host nexus.yml
เบเบปเบงเบขเปเบฒเบ ansible-playbook เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ 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 เบฅเบธเปเบเปเบเบปเปเบฒเบเบงเปเบฒเบฅเบธเปเบเบฅเปเบฒเบชเบธเบ, เบเปเบฒเบเบเบงเบเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบเปเบฒเบเบเปเปเปเบเปเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบเปเปเบกเบตเบขเบนเปเปเบเบเบฒเบเบเปเบญเบเบเบตเปเบเบดเบเบเบฑเปเบ (เบเบปเบงเบขเปเบฒเบ, hosting yum repositories เบชเบฒเบกเบฒเบเปเบเปเปเบเปเบชเปเบฒเบฅเบฑเบ nexus เบซเบผเบฒเบเบเบงเปเบฒ 3.8.0, git lfs repo. เบชเปเบฒเบฅเบฑเบ Nexus เบซเบผเบฒเบเบเบงเปเบฒ 3.3.0 เปเบฅเบฐเบญเบทเปเบเป)
nexus timezone
เปเบกเปเบเบเบทเปเบเบญเบเปเบเบเปเบงเบฅเบฒ Java, เปเบเบดเปเบเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบ cron เบเปเปเปเบเบเบตเปเบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบ nexus_scheduled.
เบเบญเบ Nexus เปเบฅเบฐเปเบชเบฑเปเบเบเบฒเบเบเปเบฅเบดเบเบปเบ
nexus_default_port: 8081
nexus_default_context_path: '/'
เบเบญเบ เปเบฅเบฐเปเบชเบฑเปเบเบเบฒเบเบเปเบฅเบดเบเบปเบเบเบญเบเบเบฐเบเบงเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป Java. 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 instance directories
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
เบกเบตเปเบเบฅเปเบเบตเปเบเบดเบเบเบฑเปเบเปเบเป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. เบเบฐเบฅเบธเบเบฒเบขเปเบฒเบเปเบฝเบเบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเป เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเบเปเปโเปเบเปโเบญเปเบฒเบโ
เปเบเบฑเบเบเบฒเบเปเบเบทเบญเบเปเบเบเบฑเปเบเบเบตเบชเบญเบ, เบเบตเปเปเบกเปเบเบเบปเบเบเบฑเบเบซเบเปเปเบเบฒเบเปเบญเบเบฐเบชเบฒเบเบเปเบฒเบเปเบเบดเบ:
เบกเบฑเบเบเปเปเปเบเปเบเบทเบเปเบเบฐเบเปเบฒเปเบซเปเปเบเบตเปเบกเบเบงเบฒเบกเบเบปเบเบเปเบฒ heap JVM เปเบเบตเบเบเปเบฒเบเบตเปเปเบเบฐเบเปเบฒเปเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบเบฐเบเบฑเบเบเบธเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เบเบตเปเบเบปเบงเบเบดเบเปเบฅเปเบงเบญเบฒเบเบเบฐเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เปเบฎเบฑเบเปเบซเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ.
เบฅเบฐโเบซเบฑเบโเบเปเบฒเบโเบเบนเปโเบเปโเบฅเบดโเบซเบฒเบโ
nexus_admin_password: 'changeme'
เบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบฑเบเบเบต "admin" เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ. เบเบตเปเบเบฝเบเปเบเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบฒเบญเบดเบ. เบเบฐเบฅเบธเบเบฒเปเบเบดเปเบ [เบเปเบฝเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบฑเปเบเบเปเบฒเบญเบดเบ](# change-admin-password-after-first-install) เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเปเบฝเบเบกเบฑเบเปเบเบเบฒเบเบซเบผเบฑเบเปเบเบเปเบเปเบเบปเบเบเบฒเบ.
เปเบเบฐเบเบณเบขเปเบฒเบเบเบดเปเบเบเปเปเปเบซเปเปเบเบฑเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบญเบเปเบเบปเปเบฒเปเบเบฑเบเบเปเปเบเบงเบฒเบกเบเบตเปเบเบฑเบเปเบเบเบขเบนเปเปเบ playbook, เปเบเปเปเบซเปเปเบเป [ansible-vault encryption] (
เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบตเปเบเปเปเปเบเบตเบเปเบเบตเบเบเบทเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ
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
, เบเบดเบเบเปเปเบเบปเบงเบเบฑเบ 127.0.0.1:8081, เบเบฑเปเบเบเบฑเปเบ เบเปเป เบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเปเปเบเบเบเบปเบเบเปเบฒเบเบเบญเบ HTTP 8081 เบเบฒเบเบเบตเปเบขเบนเป IP เบเบฒเบเบเบญเบ.
เบเบทเปเปเบเบปเปเบฒเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเปเบเปเปเบกเปเบ nexus_public_hostname
. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบทเปเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฒเบเบขเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบ httpd_server_name
เบเบตเปโเบกเบตโเบเบงเบฒเบกโเบซเบกเบฒเบโเบเบตเปโเปเบเบโเบเปเบฒเบโเบเบฑเบโ.
ะก httpd_copy_ssl_files: true
(เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ) เปเบเบขเบฑเปเบเบขเบทเบเบเปเบฒเบเปเบเบดเบเบเบงเบเบกเบตเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต playbook เบเบญเบเบเปเบฒเบเปเบฅเบฐเบเบฐเบเบทเบเบเบฑเบเบฅเบญเบเปเบชเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒเปเบ apache.
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเปเปเบเบขเบฑเปเบเบขเบทเบเบเบตเปเบกเบตเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบดเบเบเบฑเปเบ 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) เปเบเบทเปเบญเบชเปเบฒเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป.
เบฅเบฒเบเบเบทเปเบเบนเปเปเบเป/เบเบฑเบเบเบตเบเปเบญเบเบเบดเปเบ (เบเบตเปเบเปเปเปเบกเปเบ LDAP) เบเบตเปเบเบฐเบชเปเบฒเบเปเบ Nexus.
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
เบฅเบถเบ repositories เบเบฒเบ nexus เบเบดเบเบเบฑเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบเบฑเปเบโเบเบญเบโเบเบตเปโเปเบกเปเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฝเบโเปเบเปโเปเบโเบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบฑเปเบโเบเปเบฒโเบญเบดเบ (เปเบกเบทเปเบญโ nexus_data_dir
เบเบงเบโเบเบปเบโเบซเบงเปเบฒเบโเปเบเบปเปเบฒ).
เบเบฒเบเบเบญเบ repositories เบญเบญเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบชเปเบฒเบฅเบฑเบ Nexus. เบเบฑเปเบเบเบญเบเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบเบเบฝเบเปเบเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบฑเปเบเบเปเบฒเบญเบดเบ (เปเบกเบทเปเบญ nexus_data_dir
เบซเบงเปเบฒเบ).
nexus_delete_default_blobstore: false
เบฅเบถเบ blobstore เปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบ nexus เบเบดเบเบเบฑเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบฝเบเปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒ nexus_delete_default_repos: true
เปเบฅเบฐเบเบธเบ repositories เบเบตเปเบเบทเบเบเบฑเปเบเบเปเบฒ (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป) เบกเบตเบเบงเบฒเบกเบเบฑเบเปเบเบ blob_store: custom
. เบเบฑเปเบโเบเบญเบโเบเบตเปโเปเบกเปเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฝเบโเปเบเปโเปเบโเบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบฑเปเบโเบเปเบฒโเบญเบดเบ (เปเบกเบทเปเบญโ nexus_data_dir
เบเบงเบโเบเบปเบโเบซเบงเปเบฒเบโเปเบเบปเปเบฒ).
เบเบฒเบเปเบญเบปเบฒเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ blob (binary artifacts) เบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบทเปเบญเบเบเบปเปเบ. เปเบเบทเปเบญเปเบญเบปเบฒเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ blob (binary artifacts), เบเบดเบ 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 }}"
เบเบฒเบเบเบฑเปเบเบเปเบฒ blobstore เปเบ S3 เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบฑเบเบเบงเบฒเบกเบชเบฐเบเบงเบเบชเบฐเบเบฒเบเปเบฅเบฐเบเปเปเปเบกเปเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบ travis. เบเบฐโเบฅเบธโเบเบฒโเบชเบฑเบโเปเบเบโเบงเปเบฒโเบเบฒเบโเปเบเบฑเบโเบฎเบฑเบโเบชเบฒโเปเบงเปโเปเบ S3 เปเบกเปเบโเปเบเบฐโเบเปเบฒโเปเบซเปโเบเบฝเบโเปเบเปโเบชเปเบฒโเบฅเบฑเบโเบเบปเบงโเบขเปเบฒเบโเบเบตเปโเบเปเบฒโเปเบเปโเปเบ AWSโ.
เบเบฒเบเบชเปเบฒเบ
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒ blob เปเบ 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"
Maven
เบเบฒเบเบเบฑเปเบเบเปเบฒ
nexus_repos_maven_group:
- name: public
member_repos:
- central
- jboss
เบเบฒเบเบเบฑเปเบเบเปเบฒ
เบเบฑเบเบชเบฒเบกเบเบฐเปเบเบ repository เปเบกเปเบเบฅเบงเบกเปเบเบปเปเบฒเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเปเปเปเบเบเบตเป:
_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 repository เบเบฐเปเบเบ:
เปเบเบดเปเบ 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
เบเบฐเบฅเบธเบเบฒเบฎเบฑเบเบเบฒเบเบงเปเบฒเบเปเบฒเบเบญเบฒเบเบเบฐเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบเบตเบเปเบเปเบเบญเบเปเบเบเบเบงเบฒเบกเบเบญเบเปเบเบเบฒเบเบขเปเบฒเบเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเปเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบฐเปเบเบเบญเบทเปเบเบเบญเบเบเบฒเบ maven. เบญเบฑเบเบเบตเปเปเบกเปเบเบเปเปเบเบทเบเบเปเบญเบเบเบฒเบกเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ
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
เปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบเบปเบฒเปเบเปเบเปเปเบงเปเบฒ:
- เบเบฒเบเบฅเปเบฒเบเบฑเบเบเบฑเปเบเบเบญเบเบเบฐเปเบเบ Java
org.sonatype.nexus.scheduling.TaskDescriptorSupport
- เบเบงเบเปเบเบดเปเบเปเบเบเบเบญเบกเบเบฒเบเบชเปเบฒเบเบงเบฝเบ HTML เปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบญเบเบเปเบฒเบ
- เบเบฒเบเบเบฒเบเปเบเบดเปเบเบเบฒเบเบฎเปเบญเบเบเป AJAX เปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฑเปเบเบซเบเปเบฒเบงเบฝเบเบเปเบงเบเบเบปเบเปเบญเบ.
เบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเปเปเบฒเบงเบฝเบเบเบฐเบเปเบญเบเบเบทเบเบเบฐเบเบฒเบเปเบเบเบฅเบฑเบญเบ yaml เบเบตเปเบเบทเบเบเปเบญเบเบเบฒเบกเบเบฐเปเบเบเบเบญเบเบกเบฑเบ:
taskProperties
เบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบชเบปเบกโเบเบฑเบโเบชเบฐโเบโเบฃเบดเบโเบเบฑเบโเบซเบกเบปเบ (เปเบเบฑเปเบโ: เบเบทเป repositoryโ, เบเบทเป repositoryโ, เปเบฅโเบเบฐโเปเบงโเบฅเบฒ ... )โ.booleanTaskProperties
เบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบชเบปเบกโเบเบฑเบโเบเบฒเบกโเปเบซเบโเบเบปเบโเบเบฑเบโเบซเบกเบปเบ (เปเบเบฑเปเบโ: เบเปเบญเบโเบขเปเบฝเบกโเบเบปเปเบโเบเปโเปเบ GUI เบเบญเบโเบงเบฝเบโเบเบฒเบโเบเบฒเบโเบชเปเบฒเบ nexusโ)โ.
เบเบฒเบ เบชเบณ เบฎเบญเบเบเปเปเบกเบนเบ
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 เบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเบตเป](templates/backup.groovy.j2) เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ.
เบงเบฝเบโเบเบฒเบโเบเบตเปโเบเบณโเบเบปเบโเปเบงโเบฅเบฒโเบเบตเปโเปเบกเปเบโเปเบเบฑเบโเปเบญโเบเบฐโเบฅเบฒเบโเบเบญเบโเบเบปเบโเบญเบทเปเบ nexus_scheduled_tasks
เบเบตเปเปเบเบปเปเบฒ
เบเบฐโเบเบฒเบโเปเบ playbook เบเบญเบโเบเปเบฒเบโ.
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ rotate / เบฅเบถเบ backups, เบเบดเบเบเบฑเปเบ 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
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ restart เบเบฑเปเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเบดเบเบเบฑเปเบ nexus instance เบเบทเบเปเปเปเปเบเบเปเบญเบปเบฒเบเปเปเบกเบนเบเบเบฑเบเปเบปเบเบญเบญเบ.
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
เปเบ playbook เบเบญเบโเบเปเบฒเบโเบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโ:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPassword
เบเปเบญเบ Telegram เปเบ Nexus Sonatype:
เบเบฝเบเปเบเปเบเบนเปเปเบเปเบฅเบปเบเบเบฐเบเบฝเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบฎเปเบงเบกเปเบเบเบฒเบเบชเปเบฒเบซเบผเบงเบ.
เปเบเบปเปเบฒเปเบเปเบเปเบญเบเปเบเบฑเบเบงเบฑเบเบเบธเบเบนเบฎเบฒเบเบญเบฑเบเปเบเปเบเป?
-
Sonatype Nexus เปเบกเปเบเบเปเปเปเบชเบเบเปเบฒ
-
Sonatype Nexus เบเปเบฒเบ
-
Artifactory เปเบกเปเบเบเปเปเปเบชเบเบเปเบฒ
-
Artifactory เบเปเบฒเบ
-
Harbour
-
Pulp
9 เบเบนเปเปเบเปเบฅเบปเบเบเบฐเปเบเบเบชเบฝเบ. 3 เบเบนเปเปเบเปเบเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com