Sonatype Nexus рд╣реЗ рдПрдХрд╛рддреНрдорд┐рдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрд╣реЗ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рдХ Java (Maven) рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡, Docker, Python, Ruby, NPM, Bower images, RPM рдкреЕрдХреЗрдЬреЗрд╕, gitlfs, Apt, Go, Nuget, рдкреНрд░реЙрдХреНрд╕реА, рд╕рдВрдЪрдпрд┐рдд рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рддрд░реАрдд рдХрд░реВ рд╢рдХрддрд╛рдд.
рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕рдЪреА рдЧрд░рдЬ рдХрд╛ рдЖрд╣реЗ?
- рдЦрд╛рдЬрдЧреА рдХрд▓рд╛рдХреГрддреА рд╕рд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА;
- рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реВрди рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд▓рд╛рдХреГрддреА рдХреЕрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА;
рдореВрд│ рд╕реЛрдирд╛рдЯрд╛рдЗрдк рдиреЗрдХреНрд╕рд╕ рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддреА:
- рдЬрд╛рд╡рд╛, рдорд╛рд╡реЗрди (рдЬрд╛рд░)
- рдЧреЛрджреА рдХрд╛рдордЧрд╛рд░
- рдкрд╛рдпрдерди (рдкрд┐рдк)
- рд░реБрдмреА (рд░рддреНрди)
- рдПрдирдкреАрдПрдо
- рдмрд╛рд╡рд░
- рдпрдо (rpm)
- gitlfs
- рдХрдЪреНрдЪрд╛
- рдпреЛрдЧреНрдп (deb)
- Go
- рдиреБрдЧреЗ
рд╕рдореБрджрд╛рдп рд╕рдорд░реНрдерд┐рдд рдХрд▓рд╛рдХреГрддреА:
- рд╕рдВрдЧреАрддрдХрд╛рд░
- рдХреЛрдирди
- рд╕реАрдкреАрдПрдПрди
- 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 рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░рд╛
- Nexus рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЪрд╛рд▓рд╡рд╛
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 repositories рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. 3.3.0 рдкреЗрдХреНрд╖рд╛ рдореЛрдареНрдпрд╛ рдиреЗрдХреНрд╕рд╕рд╕рд╛рдареА рдЗ.)
nexus timezone
рд╣реЗ Java рдЯрд╛рдЗрдо рдЭреЛрдирдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ, рдЬреЗ 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_installation_dir: '/opt'
nexus_data_dir: '/var/nexus'
nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"
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
, nexus рд╕рдВрдкрд░реНрдХ 127.0.0.1:8081, рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдирд╛рд╣реА рдмрд╛рд╣реНрдп IP рдкрддреНрддреНрдпрд╛рд╡рд░реВрди HTTP рдкреЛрд░реНрдЯ 8081 рджреНрд╡рд╛рд░реЗ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ.
рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдбреАрдлреЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрдирд╛рд╡ рдЖрд╣реЗ nexus_public_hostname
. рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдирд╛рд╡рд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛ httpd_server_name
рд╡реЗрдЧрд│реНрдпрд╛ рдЕрд░реНрдерд╛рдиреЗ.
╨б httpd_copy_ssl_files: true
(рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░) рд╡рд░реАрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рддреБрдордЪреНрдпрд╛ рдкреНрд▓реЗрдмреБрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реА рдкрд╛рд╣рд┐рдЬреЗрдд рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЙрдкреА рдХреЗрд▓реА рдЬрд╛рддреАрд▓ рдЖрдгрд┐ 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_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
Blobstores рдЖрдгрд┐ рднрд╛рдВрдбрд╛рд░
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"
рдорд╛рд╡реЗрди
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди
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
рдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдВрд╕рд╛рдареА:
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
рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдореЕрд╡реЗрди рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдЗрддрд░ рдкреНрд░рдХрд╛рд░рдЪреЗ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЕрд╕рддреАрд▓ рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдХреЛрдк рд╕рдХреНрд╖рдо рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓. рд╣реЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЦреЛрдЯреЗ рдЖрд╣реЗ
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
(рдбрд┐рдлреЙрд▓реНрдЯ 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 рдХрд╛рдвреВрди рдЯрд╛рдХрдд рдЖрд╣реЗ
рдЪреЗрддрд╛рд╡рдгреА: рд╣реЗ рддреБрдордЪрд╛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╣рдЯрд╡реЗрд▓. рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЖрдзреА рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛
рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡рд╛рдкрд░рд╛ 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
Nexus Sonatype рд╡рд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреЕрдиреЗрд▓:
рдХреЗрд╡рд│ рдиреЛрдВрджрдгреАрдХреГрдд рд╡рд╛рдкрд░рдХрд░реНрддреЗрдЪ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╛рдд рднрд╛рдЧ рдШреЗрдК рд╢рдХрддрд╛рдд.
рддреБрдореНрд╣реА рдХреЛрдгрддреЗ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЬ рд╡рд╛рдкрд░рддрд╛?
-
Sonatype Nexus рд╡рд┐рдирд╛рдореВрд▓реНрдп рдЖрд╣реЗ
-
Sonatype Nexus рдЕрджрд╛ рдХреЗрд▓реЗ
-
рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрд░реА рд╡рд┐рдирд╛рдореВрд▓реНрдп рдЖрд╣реЗ
-
рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯрд░реА рдкреЗрдб
-
рд╣рд╛рд░реНрдмрд░
-
рд▓рдЧрджрд╛
9 рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдорддрджрд╛рди рдХреЗрд▓реЗ. 3 рд╡рд╛рдкрд░рдХрд░реНрддреЗ рджреВрд░ рд░рд╛рд╣рд┐рд▓реЗ.
рд╕реНрддреНрд░реЛрдд: www.habr.com