рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдПрдХ рдПрдХреАрдХреГрдд рдордВрдЪ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрд╛рд╡рд╛ (рдорд╛рд╡реЗрди) рдирд┐рд░реНрднрд░рддрд╛, рдбреЙрдХрд░, рдкрд╛рдпрдерди, рд░реВрдмреА, рдПрдирдкреАрдПрдо, рдмреЛрд╡рд░ рдЗрдореЗрдЬ, рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ, рдЧрд┐рдЯрд▓рдлреНрд╕, рдПрдкреНрдЯ, рдЧреЛ, рдиреБрдЧреЗрдЯ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА, рд╕реНрдЯреЛрд░ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
- рдирд┐рдЬреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП;
- рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
рдореВрд▓ рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ:
- рдЬрд╛рд╡рд╛, рдорд╛рд╡реЗрди (рдЬрд╛рд░)
- рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░
- рдкрд╛рдпрдерди (рдкрд┐рдк)
- рд░реВрдмреА (рд░рддреНрди)
- NPM
- рдХреБрдВрдЬ
- рдпрдо (рдЖрд░рдкреАрдПрдо)
- gitlfs
- рдХрдЪреНрдЪрд╛
- рдЙрдкрдпреБрдХреНрдд (deb)
- Go
- Nuget
рд╕рдореБрджрд╛рдп рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ:
- рд╕рдВрдЧреАрддрдХрд╛рд░
- рдХреЛрдирди
- рд╕реАрдкреАрдПрдПрди
- рдИрдПрд▓рдкреАрдП
- рдкрддрд╡рд╛рд░
- P2
- R
рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ https://github.com/ansible-ThoTeam/nexus3-oss
рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ
- рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВред
- рдЙрддреНрддрд░рдпреЛрдЧреНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
pip install ansible
рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдЬрд╣рд╛рдВ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рддреА рд╣реИред - рд╕реНрдерд┐рдд
geerlingguy.java рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдЬрд╣рд╛рдВ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рддреА рд╣реИред - рд╕реНрдерд┐рдд
geerlingguy.apache рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдЬрд╣рд╛рдВ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рддреА рд╣реИред - рдЗрд╕ рднреВрдорд┐рдХрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг CentOS 7, Ubuntu Xenial (16.04) рдФрд░ рдмрд╛рдпреЛрдирд┐рдХ (18.04), рдбреЗрдмрд┐рдпрди рдЬреЗрд╕реА рдФрд░ рд╕реНрдЯреНрд░реЗрдЪ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
jmespath
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓ рд░рд╣реА рд╣реИред рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:sudo pip install -r requirements.txt
- рдкреНрд▓реЗрдмреБрдХ рдлрд╝рд╛рдЗрд▓ (рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ) рдХреЛ nexus.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ
- рдиреЗрдХреНрд╕рд╕ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдЪрд▓рд╛рдПрдБ
ansible-playbook -i host nexus.yml
рдореЗрд╡реЗрди (рдЬрд╛рд╡рд╛), рдбреЙрдХрд░, рдкрд╛рдпрдерди, рд░реВрдмреА, рдПрдирдкреАрдПрдо, рдмреЛрд╡рд░, рдЖрд░рдкреАрдПрдо рдФрд░ рдЧрд┐рдЯрд▓рдлреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдПрд▓рдбреАрдПрдкреА рдХреЗ рдмрд┐рдирд╛ рдиреЗрдХреНрд╕рд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг-рдкреНрд▓реЗрдмреБрдХред
---
- 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_version
. рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВ
рдпрджрд┐ рдЖрдк рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рднреВрдорд┐рдХрд╛ рдЖрдкрдХреЗ рдиреЗрдХреНрд╕рд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреАред
рдпрджрд┐ рдЖрдк рдиреЗрдХреНрд╕рд╕ рдХреЗ рдирд╡реАрдирддрдо рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реЛрд╕реНрдЯ рдХрд░рдирд╛ 3.8.0 рд╕реЗ рдЕрдзрд┐рдХ рдиреЗрдХреНрд╕рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреАрдЖрдИрдЯреА рдПрд▓рдПрдлрдПрд╕ рд░реЗрдкреЛ 3.3.0 рдЖрджрд┐ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдиреЗрдХреНрд╕рд╕ рдХреЗ рд▓рд┐рдП)
nexus timezone
рдЬрд╛рд╡рд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо рд╣реИ, рдЬреЛ nexus_scheduled рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░реЙрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдиреЗрдХреНрд╕рд╕ рдкреЛрд░реНрдЯ рдФрд░ рд╕рдВрджрд░реНрдн рдкрде
nexus_default_port: 8081
nexus_default_context_path: '/'
рдЬрд╛рд╡рд╛ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреЛрд░реНрдЯ рдФрд░ рд╕рдВрджрд░реНрдн рдкрдеред nexus_default_context_path
рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдореЗрдВ рдлреЙрд░рд╡рд░реНрдб рд╕реНрд▓реИрд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: nexus_default_context_path: '/nexus/'
.
рдиреЗрдХреНрд╕рд╕ рдУрдПрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣
nexus_os_group: 'nexus'
nexus_os_user: 'nexus'
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣ рдЬреЛ рдиреЗрдХреНрд╕рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХ рдереЗ рдФрд░ рд╕реЗрд╡рд╛ рдЪрд▓рд╛рддреЗ рдереЗ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдкрд░ рднреВрдорд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред
nexus_os_user_home_dir: '/home/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
рдЗрд╕рдореЗрдВ рд╕рднреА рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд░реЗрдбрд╣реИрдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрде рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ/tmp
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред #168 рджреЗрдЦреЗрдВ.
рдиреЗрдХреНрд╕рд╕ рдЬреЗрд╡реАрдПрдо рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
nexus_min_heap_size: "1200M"
nexus_max_heap_size: "{{ nexus_min_heap_size }}"
nexus_max_direct_memory: "2G"
рдпреЗ Nexus рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ. рдХреГрдкрдпрд╛ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рди рдмрджрд▓реЗрдВ рдЕрдЧрд░ рдЖрдкрдиреЗ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ
рджреВрд╕рд░реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рдЙрдкрд░реЛрдХреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдПрдХ рдЕрдВрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ JVM рд╣реАрдк рдореЗрдореЛрд░реА рдХреЛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдкрд░реАрдд рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
рдкрд╛рд╕рд╡рд░реНрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ
nexus_admin_password: 'changeme'
рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ" рдЦрд╛рддрд╛ рдкрд╛рд╕рд╡рд░реНрдбред рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рдердо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ. рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреВрдорд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ [рдкрд╣рд▓реЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдмрд╛рдж рдПрдбрдорд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ] (# рдЪреЗрдВрдЬ-рдПрдбрдорд┐рди-рдкрд╛рд╕рд╡рд░реНрдб-рдЖрдлреНрдЯрд░-рдлрд░реНрд╕реНрдЯ-рдЗрдВрд╕реНрдЯреЙрд▓) рджреЗрдЦреЗрдВред
рдпрд╣ рджреГрдврд╝рддрд╛рдкреВрд░реНрд╡рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рди рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ [ansible-vault рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирд╛рдо рдкрд╣реБрдВрдЪ
nexus_anonymous_access: false
рдЕрдирд╛рдо рдкрд╣реБрдВрдЪ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ. рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛрд╕реНрдЯрдирд╛рдо
nexus_public_hostname: 'nexus.vm'
nexus_public_scheme: https
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рдбреЛрдореЗрди рдирд╛рдо рдФрд░ рдпреЛрдЬрдирд╛ (https рдпрд╛ http) рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдиреЗрдХреНрд╕рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
рдЗрд╕ рднреВрдорд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕
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 }}"
рдпреЗ рдЪрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╛рд╡рдзрд╛рди рдХреЗ рд▓рд┐рдП рднреВрдорд┐рдХрд╛ рдиреЗрдХреНрд╕рд╕ рдПрдкреАрдЖрдИ рд╕реЗ рдХреИрд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИред
рдХреЗрд╡рд▓ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП. рдЖрдк рд╢рд╛рдпрдж рдЗрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣реЗрдВрдЧреЗ
рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯ рдХрд░рдирд╛
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]"
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдИрдореЗрд▓ рдкрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ
рдПрд▓рдбреАрдПрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдПрд▓рдбреАрдПрдкреА рдХрдиреЗрдХреНрд╢рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИрдВ
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
рдЕрдирд╛рдо рдкреНрд░рдорд╛рдгреАрдХрд░рдг (рдЕрдирд╛рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдПрд▓рдбреАрдПрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдпрд╣ рднреА рдПрдХ "рдиреНрдпреВрдирддрдо" рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ:
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'
рд╕рд░рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдПрд▓рдбреАрдПрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдбреАрдПрд╕рдП рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):
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
рд╕рд░рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдПрд▓рдбреАрдПрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдбреАрдПрд╕рдП рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) + рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдк рдХрд┐рдП рдЧрдП рд╕рдореВрд╣:
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
рд╕рд░рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдПрд▓рдбреАрдПрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдбреАрдПрд╕рдП рдЦрд╛рддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) + рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдореИрдк рдХрд┐рдП рдЧрдП рд╕рдореВрд╣:
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
рдиреЗрдХреНрд╕рд╕ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп (рдЧреИрд░-рдПрд▓рдбреАрдПрдкреА) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ/рдЦрд╛рддреЛрдВ рдХреА рд╕реВрдЪреАред
рдиреЗрдХреНрд╕рд╕ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп (рдЧреИрд░-рдПрд▓рдбреАрдПрдкреА) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ/рдЦрд╛рддреЛрдВ рдХреА рд╕реВрдЪреАред
nexus_ldap_users: []
# - username: j.doe
# state: present
# roles:
# - "nx-admin"
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ/рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рдПрд▓рдбреАрдПрдкреА рдореИрдкрд┐рдВрдЧред рд░рд╛рдЬреНрдп 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_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
рдбреЙрдХрд░, рдкрд┐рдкреА, рд░реЙ, рд░реВрдмреАрдЬреЗрдореНрд╕, рдмреЛрд╡рд░, рдПрдирдкреАрдПрдо, рдЧрд┐рдЯ-рдПрд▓рдПрдлрдПрд╕ рдФрд░ рдпрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░рдХрд╛рд░:
рджреЗрдЦрдирд╛ defaults/main.yml
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП:
рдбреЙрдХрд░, рдкрд┐рдкреА, рд░реЙ, рд░реВрдмреАрдЬреЗрдореНрд╕, рдмреЛрд╡рд░, рдПрдирдкреАрдПрдо, рдЧрд┐рдЯ-рдПрд▓рдПрдлрдПрд╕ рдФрд░ рдпрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИрдВ:
рджреЗрдЦрдирд╛ defaults/main.yml
рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП:
nexus_config_pypi: false
nexus_config_docker: false
nexus_config_raw: false
nexus_config_rubygems: false
nexus_config_bower: false
nexus_config_npm: false
nexus_config_gitlfs: false
nexus_config_yum: false
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдорд╛рд╡реЗрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рджрд╛рдпрд░реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ
nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false # required for docker anonymous access
рд░рд┐рдореЛрдЯ рдпреВрдЬрд░ рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
nexus_rut_auth_realm: true
рдФрд░ рд╢реАрд░реНрд╖рдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
nexus_rut_auth_header: "CUSTOM_HEADER"
рдирд┐рдпрдд рдХрд╛рд░реНрдп
nexus_scheduled_tasks: []
# # Example task to compact blobstore :
# - name: compact-docker-blobstore
# cron: '0 0 22 * * ?'
# typeId: blobstore.compact
# task_alert_email: [email protected] # optional
# taskProperties:
# blobstoreName: {{ nexus_blob_names.docker.blob }} # all task attributes are stored as strings by nexus internally
# # Example task to purge maven snapshots
# - name: Purge-maven-snapshots
# cron: '0 50 23 * * ?'
# typeId: repository.maven.remove-snapshots
# task_alert_email: [email protected] # optional
# taskProperties:
# repositoryName: "*" # * for all repos. Change to a repository name if you only want a specific one
# minimumRetained: "2"
# snapshotRetentionDays: "2"
# gracePeriodInDays: "2"
# booleanTaskProperties:
# removeIfReleased: true
# # Example task to purge unused docker manifest and images
# - name: Purge unused docker manifests and images
# cron: '0 55 23 * * ?'
# typeId: "repository.docker.gc"
# task_alert_email: [email protected] # optional
# taskProperties:
# repositoryName: "*" # * for all repos. Change to a repository name if you only want a specific one
# # Example task to purge incomplete docker uploads
# - name: Purge incomplete docker uploads
# cron: '0 0 0 * * ?'
# typeId: "repository.docker.upload-purge"
# task_alert_email: [email protected] # optional
# taskProperties:
# age: "24"
typeId
рдФрд░ рдХрд╛рд░реНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯtaskProperties
/booleanTaskProperties
рдЖрдк рдпрд╛ рддреЛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЬрд╛рд╡рд╛ рдкреНрд░рдХрд╛рд░ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ
org.sonatype.nexus.scheduling.TaskDescriptorSupport
- рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ HTML рдХрд╛рд░реНрдп рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдкрддреНрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
- рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ AJAX рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗред
рдХрд╛рд░реНрдп рдЧреБрдгреЛрдВ рдХреЛ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА 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_backup_cron
(рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣рд░ рджрд┐рди 21:00 рдмрдЬреЗ)ред
рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП [рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЧреНрд░реВрд╡реА рдЯреЗрдореНрдкрд▓реЗрдЯ](рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕/рдмреИрдХрдЕрдк.рдЧреНрд░реЛрд╡реА.рдЬреЗ2) рджреЗрдЦреЗрдВред
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдп рджреВрд╕рд░реЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ 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
рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдбреЗрдЯрд╛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдиреЗрдХреНрд╕рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=true
рдкрд╣рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ
nexus_default_admin_password: 'admin123'
рдЗрд╕реЗ рдЖрдкрдХреА рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП. рдкрд╣рд▓реА рдмрд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЗрдХреНрд╕рд╕ рдПрдбрдорд┐рди рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рднрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдбрдорд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдЗрд╕рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ nexus_admin_password
.
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рдкрд╛рд╕рд╡рд░реНрдб рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рдж nexus_admin_password
рдЕрдкрдиреА рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рдЖрдк рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPassword
рдиреЗрдХреНрд╕рд╕ рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдкрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓:
рдХреЗрд╡рд▓ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реА рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рдХрд┐рд╕ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?
-
рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдореБрдлрд╝реНрдд рд╣реИ
-
рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдиреЗ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛
-
рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдореБрдлрд╝реНрдд рд╣реИ
-
рдХрд╛рд░реАрдЧрд░реА рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛
-
рдмрдВрджрд░рдЧрд╛рд╣
-
рд▓реБрдЧрджреА
9 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 3 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред
рд╕реНрд░реЛрдд: www.habr.com