Sonatype Nexus рдПрдХ рдПрдХреАрдХреГрдд рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛ рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ Java (Maven) рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ, Docker, Python, Ruby, NPM, Bower рдЫрд╡рд┐рд╣рд░реВ, RPM рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ, gitlfs, Apt, Go, Nuget, рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рддрд░рдг рдЧрд░реНрди рдкреНрд░реЛрдХреНрд╕реА, рднрдгреНрдбрд╛рд░рдг рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред
рддрдкрд╛рдИрд▓рд╛рдИ Sonatype Nexus рдХрд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ?
- рдирд┐рдЬреА рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐;
- рдЗрдиреНрдЯрд░рдиреЗрдЯрдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдПрдХрд╛ рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ рдХреНрдпрд╛рд╕ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐;
рдЖрдзрд╛рд░рднреВрдд Sonatype Nexus рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ:
- рдЬрд╛рднрд╛, рдорд╛рд╡реЗрди (рдЬрд╛рд░)
- рдбрдХрд░
- рдкрд╛рдЗрдерди (рдкрд┐рдк)
- рд░реБрдмреА (рд░рддреНрди)
- рдПрдирдкреАрдПрдо
- рднрд╛рдиреНрд╕рд╛
- рдпрдо (rpm)
- gitlfs
- рдХрдЪреНрдЪрд╛
- рдЙрдкрдпреБрдХреНрдд (рдбреЗрдм)
- Go
- рдиреБрдЧреЗ
рд╕рдореБрджрд╛рдп рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВ:
- рд╕рдВрдЧреАрддрдХрд╛рд░
- рдХрдирди
- CPAN
- ELPA
- рд╣реЗрд▓рдореЗрдЯ
- 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 рдлрд╛рдЗрд▓рдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
- рдиреЗрдХреНрд╕рд╕ рд╕реНрдерд╛рдкрдирд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН
ansible-playbook -i host nexus.yml
Maven (java), Docker, Python, Ruby, NPM, Bower, RPM рд░ gitlfs рднрдгреНрдбрд╛рд░рд╣рд░реВрд╕рдБрдЧ LDAP рдмрд┐рдирд╛ рдиреЗрдХреНрд╕рд╕ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрддрд░рджрд╛рдпреА-рдкреНрд▓реЗрдмреБрдХрдХреЛ рдЙрджрд╛рд╣рд░рдгред
---
- 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, git lfs repo рднрдиреНрджрд╛ рдорд╛рдерд┐рдХреЛ рдиреЗрдХреНрд╕рд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрд╕реНрдЯрд┐рдЩ yum рднрдгреНрдбрд╛рд░рд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред рей.рей.реж рдЖрджрд┐ рднрдиреНрджрд╛ рдареБрд▓реЛ рдиреЗрдХреНрд╕рд╕рдХрд╛ рд▓рд╛рдЧрд┐)
nexus timezone
рдЬрд╛рднрд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░рдХреЛ рдирд╛рдо рд╣реЛ, рдЬреБрди nexus_scheduled рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рдореНрди рдХреНрд░реЛрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд╕рдБрдЧ рд╕рдВрдпреЛрдЬрдирдорд╛ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред
рдиреЗрдХреНрд╕рд╕ рдкреЛрд░реНрдЯ рд░ рд╕рдиреНрджрд░реНрдн рдорд╛рд░реНрдЧ
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_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_blobstores
.nexus_tmp_dir
рд╕рдмреИ рдЕрд╕реНрдерд╛рдпреА рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред redhat рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рд░реНрдЧ рдмрд╛рдЯ рд╕рд╛рд░рд┐рдПрдХреЛ рдЫ/tmp
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрдиред рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдирдореНрдмрд░ резремреоред
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
, рдиреЗрдХреНрд╕рд╕ рд╕рдореНрдкрд░реНрдХрд╣рд░реВ 127.0.0.1:8081, рдпрд╕рд░реА рдЫреИрди рдмрд╛рд╣реНрдп рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рдмрд╛рдЯ 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_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) рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛/рдЦрд╛рддрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреАред
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
рдмреНрд▓рдмрд╕реНрдЯреЛрд░рд╣рд░реВ рд░ рднрдгреНрдбрд╛рд░рд╣рд░реВ
nexus_delete_default_repos: false
рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕реНрдерд╛рдкрдирд╛ рдиреЗрдХреНрд╕рд╕рдмрд╛рдЯ рднрдгреНрдбрд╛рд░рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред рдпреЛ рдЪрд░рдг рдорд╛рддреНрд░ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рд╕реНрдерд╛рдкрдирд╛ рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ (рдЬрдм nexus_data_dir
рдЦрд╛рд▓реА рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдЫ)ред
Nexus рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдмрд╛рдЯ рднрдгреНрдбрд╛рд░рд╣рд░реВ рд╣рдЯрд╛рдЙрдБрджреИред рдпреЛ рдЪрд░рдг рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рдкрдирд╛рдХреЛ рд╕рдордпрдорд╛ рдорд╛рддреНрд░ рдЧрд░рд┐рдиреНрдЫ (рдЬрдм 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_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"
Maven
рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди
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 рднрдгреНрдбрд╛рд░рд╣рд░реВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрд╕рдХреНрд╖рдо рдЫрдиреН:
рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН 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
рд░рд┐рдореЛрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд╖реЗрддреНрд░ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ
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
рд╕рдмреИ рд╕реНрдЯреНрд░рд┐рдЩ рдЧреБрдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ (рдЬрд╕реНрддреИ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдирд╛рдорд╣рд░реВ, рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдирд╛рдорд╣рд░реВ, рд╕рдордп рдЕрд╡рдзрд┐...)ред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
рдЬреБрди рддрдкрд╛рдИрдВ
рддрдкрд╛рдИрдВрдХреЛ рдкреНрд▓реЗрдмреБрдХрдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рдШреБрдорд╛рдЙрди/рдореЗрдЯрд╛рдЙрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН nexus_backup_rotate: true
рд░ рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмрдЪрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреЗ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН nexus_backup_keep_rotations
(рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рек)ред
рд░реЛрдЯреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдмреНрдпрд╛рдХрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдбрд┐рд╕реНрдХ рдард╛рдЙрдБ рдмрдЪрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ,
рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ 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
рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рд░ рд╣рдЯрд╛рдЗрдПрдХрд╛ рд╕рдмреИ рдбреЗрдЯрд╛рдХреЛ рд╕рд╛рде рдиреЗрдХреНрд╕рд╕ рдЙрджрд╛рд╣рд░рдг рдкреБрди: рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
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
рдиреЗрдХреНрд╕рд╕ рд╕реЛрдирд╛рдЯрд╛рдЗрдкрдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдирд▓:
рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред
рддрдкрд╛рдИрдВ рдХреБрди рдХрд▓рд╛рдХреГрддрд┐ рднрдгреНрдбрд╛рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?
-
Sonatype Nexus рдирд┐: рд╢реБрд▓реНрдХ рдЫ
-
Sonatype Nexus рднреБрдХреНрддрд╛рди рдЧрд░рд┐рдпреЛ
-
рдХрд▓рд╛рддреНрдордХ рдирд┐: рд╢реБрд▓реНрдХ рдЫ
-
рдХрд▓рд╛рддреНрдордХ рднреБрдХреНрддрд╛рди рдЧрд░рд┐рдпреЛ
-
рд╣рд╛рд░реНрдмрд░
-
рдкреБрд▓
9 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред реи рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред
рд╕реНрд░реЛрдд: www.habr.com