{"id":39512,"date":"2019-10-31T22:34:37","date_gmt":"2019-10-31T19:34:37","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code\/"},"modified":"2019-10-31T22:34:37","modified_gmt":"2019-10-31T19:34:37","slug":"ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code","title":{"rendered":"Installazione e configurazione di Nexus Sonatype utilizzando l'approccio infrastructure as code.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Sonatype Nexus \u2013 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 Java (Maven), \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 Docker, Python, Ruby, NPM, Bower, RPM-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, gitlfs, Apt, Go, Nuget, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435. <\/p>\n<p><\/p>\n<h3 id=\"zachem-nuzhen-sonatype-nexus\">\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Sonatype Nexus?<\/h3>\n<p><\/p>\n<ul>\n<li>\u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432;<\/li>\n<li>\u0414\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430;<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"artefakty-podderzhivaemye-v-bazovoy-postavke-sonatype-nexus\">\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Sonatype Nexus:<\/h3>\n<p><\/p>\n<ul>\n<li>Java, Maven (jar)<\/li>\n<li>Docker<\/li>\n<li>Python (pip)<\/li>\n<li>Ruby (gem)<\/li>\n<li>NPM<\/li>\n<li>Bower<\/li>\n<li>Yum (rpm)<\/li>\n<li>gitlfs<\/li>\n<li>Raw<\/li>\n<li>Apt (deb)<\/li>\n<li>Go<\/li>\n<li>Nuget<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"artefakty-podderzhivaemye-soobschestvom\">\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c:<\/h3>\n<p><\/p>\n<ul>\n<li>Composer<\/li>\n<li>Conan<\/li>\n<li>CPAN<\/li>\n<li>ELPA<\/li>\n<li>Helm<\/li>\n<li>P2<\/li>\n<li>R<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ustanovka-sonatype-nexus-ispolzuya-httpsgithubcomansible-thoteamnexus3-oss\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Sonatype Nexus \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible-ThoTeam\/nexus3-oss\">https:\/\/github.com\/ansible-ThoTeam\/nexus3-oss<\/a><\/noindex><\/h2>\n<p><\/p>\n<h3 id=\"trebovaniya\">\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p><\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 ansible \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435.<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 ansible <code>pip install ansible<\/code> \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0433\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f playbook. <\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/galaxy.ansible.com\/geerlingguy\/java\/\">geerlingguy.java<\/a><\/noindex> \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0433\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f playbook. <\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/galaxy.ansible.com\/geerlingguy\/apache\/\">geerlingguy.apache<\/a><\/noindex> \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0433\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f playbook. <\/li>\n<li>\u042d\u0442\u0430 \u0440\u043e\u043b\u044c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 CentOS 7, Ubuntu Xenial (16.04) and Bionic (18.04), Debian Jessie and Stretch<\/li>\n<li><code>jmespath<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0433\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f playbook. \u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 <code>sudo pip install -r requirements.txt<\/code><\/li>\n<li>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b playbook (\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0438\u0436\u0435) \u0432 \u0444\u0430\u0439\u043b nexus.yml<\/li>\n<li>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 nexus <code>ansible-playbook -i host nexus.yml<\/code><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"primer-ansible-playbook-dlya-ustanovki-nexus-bez-ldap-s-repozitoriyami-maven-java-docker-python-ruby-npm-bower-rpm-i-gitlfs\">\u041f\u0440\u0438\u043c\u0435\u0440 ansible-playbook \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 nexus \u0431\u0435\u0437 LDAP \u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 Maven (java), Docker, Python, Ruby, NPM, Bower, RPM \u0438 gitlfs.<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">---\n- name: Nexus\n  hosts: nexus\n  become: yes\n\n  vars:\n    nexus_timezone: 'Asia\/Omsk'\n    nexus_admin_password: \"admin123\"\n    nexus_public_hostname: 'apatsev-nexus-playbook'\n    httpd_setup_enable: false\n    nexus_privileges:\n      - name: all-repos-read\n        description: 'Read &amp; Browse access to all repos'\n        repository: '*'\n        actions:\n          - read\n          - browse\n      - name: company-project-deploy\n        description: 'Deployments to company-project'\n        repository: company-project\n        actions:\n          - add\n          - edit\n    nexus_roles:\n      - id: Developpers # maps to the LDAP group\n        name: developers\n        description: All developers\n        privileges:\n          - nx-search-read\n          - all-repos-read\n          - company-project-deploy\n        roles: []\n    nexus_local_users:\n      - username: jenkins # used as key to update\n        first_name: Jenkins\n        last_name: CI\n        email: support@company.com\n        password: \"s3cr3t\"\n        roles:\n          - Developpers # role ID here\n    nexus_blobstores:\n      - name: company-artifacts\n        path: \/var\/nexus\/blobs\/company-artifacts\n    nexus_scheduled_tasks:\n      - name: compact-blobstore\n        cron: '0 0 22 * * ?'\n        typeId: blobstore.compact\n        taskProperties:\n          blobstoreName: 'company-artifacts'\n\n    nexus_repos_maven_proxy:\n      - name: central\n        remote_url: 'https:\/\/repo1.maven.org\/maven2\/'\n        layout_policy: permissive\n      - name: jboss\n        remote_url: 'https:\/\/repository.jboss.org\/nexus\/content\/groups\/public-jboss\/'\n      - name: vaadin-addons\n        remote_url: 'https:\/\/maven.vaadin.com\/vaadin-addons\/'\n      - name: jaspersoft\n        remote_url: 'https:\/\/jaspersoft.artifactoryonline.com\/jaspersoft\/jaspersoft-repo\/'\n        version_policy: mixed\n    nexus_repos_maven_hosted:\n      - name: company-project\n        version_policy: mixed\n        write_policy: allow\n        blob_store: company-artifacts\n    nexus_repos_maven_group:\n      - name: public\n        member_repos:\n          - central\n          - jboss\n          - vaadin-addons\n          - jaspersoft\n\n    # Yum. Change nexus_config_yum to true for create yum repository\n    nexus_config_yum: true\n    nexus_repos_yum_hosted:\n      - name: private_yum_centos_7\n        repodata_depth: 1\n    nexus_repos_yum_proxy:\n      - name: epel_centos_7_x86_64\n        remote_url: http:\/\/download.fedoraproject.org\/pub\/epel\/7\/x86_64\n        maximum_component_age: -1\n        maximum_metadata_age: -1\n        negative_cache_ttl: 60\n      - name: centos-7-os-x86_64\n        remote_url: http:\/\/mirror.centos.org\/centos\/7\/os\/x86_64\/\n        maximum_component_age: -1\n        maximum_metadata_age: -1\n        negative_cache_ttl: 60\n    nexus_repos_yum_group:\n      - name: yum_all\n        member_repos:\n          - private_yum_centos_7\n          - epel_centos_7_x86_64\n\n    # NPM. Change nexus_config_npm to true for create npm repository\n    nexus_config_npm: true\n    nexus_repos_npm_hosted: []\n    nexus_repos_npm_group:\n      - name: npm-public\n        member_repos:\n          - npm-registry\n    nexus_repos_npm_proxy:\n      - name: npm-registry\n        remote_url: https:\/\/registry.npmjs.org\/\n        negative_cache_enabled: false\n\n    # Docker. Change nexus_config_docker to true for create docker repository\n    nexus_config_docker: true\n    nexus_repos_docker_hosted:\n      - name: docker-hosted\n        http_port: \"{{ nexus_docker_hosted_port }}\"\n        v1_enabled: True\n    nexus_repos_docker_proxy:\n      - name: docker-proxy\n        http_port: \"{{ nexus_docker_proxy_port }}\"\n        v1_enabled: True\n        index_type: \"HUB\"\n        remote_url: \"https:\/\/registry-1.docker.io\"\n        use_nexus_certificates_to_access_index: false\n        maximum_component_age: 1440\n        maximum_metadata_age: 1440\n        negative_cache_enabled: true\n        negative_cache_ttl: 1440\n    nexus_repos_docker_group:\n      - name: docker-group\n        http_port: \"{{ nexus_docker_group_port }}\"\n        v1_enabled: True\n        member_repos:\n          - docker-hosted\n          - docker-proxy\n\n    # Bower. Change nexus_config_bower to true for create bower repository\n    nexus_config_bower: true\n    nexus_repos_bower_hosted:\n      - name: bower-hosted\n    nexus_repos_bower_proxy:\n      - name: bower-proxy\n        index_type: \"proxy\"\n        remote_url: \"https:\/\/registry.bower.io\"\n        use_nexus_certificates_to_access_index: false\n        maximum_component_age: 1440\n        maximum_metadata_age: 1440\n        negative_cache_enabled: true\n        negative_cache_ttl: 1440\n    nexus_repos_bower_group:\n      - name: bower-group\n        member_repos:\n          - bower-hosted\n          - bower-proxy\n\n    # Pypi. Change nexus_config_pypi to true for create pypi repository\n    nexus_config_pypi: true\n    nexus_repos_pypi_hosted:\n      - name: pypi-hosted\n    nexus_repos_pypi_proxy:\n      - name: pypi-proxy\n        index_type: \"proxy\"\n        remote_url: \"https:\/\/pypi.org\/\"\n        use_nexus_certificates_to_access_index: false\n        maximum_component_age: 1440\n        maximum_metadata_age: 1440\n        negative_cache_enabled: true\n        negative_cache_ttl: 1440\n    nexus_repos_pypi_group:\n      - name: pypi-group\n        member_repos:\n          - pypi-hosted\n          - pypi-proxy\n\n    # rubygems. Change nexus_config_rubygems to true for create rubygems repository\n    nexus_config_rubygems: true\n    nexus_repos_rubygems_hosted:\n      - name: rubygems-hosted\n    nexus_repos_rubygems_proxy:\n      - name: rubygems-proxy\n        index_type: \"proxy\"\n        remote_url: \"https:\/\/rubygems.org\"\n        use_nexus_certificates_to_access_index: false\n        maximum_component_age: 1440\n        maximum_metadata_age: 1440\n        negative_cache_enabled: true\n        negative_cache_ttl: 1440\n    nexus_repos_rubygems_group:\n      - name: rubygems-group\n        member_repos:\n          - rubygems-hosted\n          - rubygems-proxy\n\n    # gitlfs. Change nexus_config_gitlfs to true for create gitlfs repository\n    nexus_config_gitlfs: true\n    nexus_repos_gitlfs_hosted:\n      - name: gitlfs-hosted\n\n  roles:\n    - { role: geerlingguy.java }\n    # Debian\/Ubuntu only\n    # - { role: geerlingguy.apache, apache_create_vhosts: no, apache_mods_enabled: [\"proxy_http.load\", \"headers.load\"], apache_remove_default_vhost: true, tags: [\"geerlingguy.apache\"] }\n    # RedHat\/CentOS only\n    - { role: geerlingguy.apache, apache_create_vhosts: no, apache_remove_default_vhost: true, tags: [\"geerlingguy.apache\"] }\n    - { role: ansible-thoteam.nexus3-oss, tags: ['ansible-thoteam.nexus3-oss'] }<\/code><\/pre>\n<p><\/p>\n<h2 id=\"skrinshoty\">\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b:<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nexus Sonatype \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0434\u0445\u043e\u0434 infrastructure as code\" src=\"\/wp-content\/uploads\/2019\/10\/080f2134077884a3e6631694df4ecd08.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nexus Sonatype \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0434\u0445\u043e\u0434 infrastructure as code\" src=\"\/wp-content\/uploads\/2019\/10\/9b5c1d1f45e647dad4be7b72f75ebd6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"peremennye-roli\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u043e\u043b\u0438<\/h2>\n<p><\/p>\n<h2 id=\"role-variables\">Role Variables<\/h2>\n<p><\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0441\u043c. <code>default\/main.yml<\/code>):<\/p>\n<p><\/p>\n<h3 id=\"general-variables\">General variables<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_version: ''\n    nexus_timezone: 'UTC'<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u043e\u043b\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Nexus. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e, \u0438\u0437\u043c\u0435\u043d\u0438\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>nexus_version<\/code>. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sonatype.com\/download-oss-sonatype\">https:\/\/www.sonatype.com\/download-oss-sonatype<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u0443\u044e, \u0442\u043e \u0440\u043e\u043b\u044c \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0430\u0448 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 Nexus.<\/p>\n<p><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Nexus, \u0447\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u0438\u0435 yum \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f nexus \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c 3.8.0, git lfs repo \u0434\u043b\u044f nexus \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c 3.3.0 \u0438 \u0442. \u0434.)<\/p>\n<p><\/p>\n<p><code>nexus timezone<\/code> \u2014 \u044d\u0442\u043e \u0438\u043c\u044f \u0447\u0430\u0441\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u0430 Java, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0438\u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 cron \u0434\u043b\u044f nexus_scheduled tasks.<\/p>\n<p><\/p>\n<h3 id=\"port-nexus-i-kontekstnyy-put\">\u041f\u043e\u0440\u0442 Nexus \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_default_port: 8081\n    nexus_default_context_path: '\/'<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u043e\u0440\u0442 \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Java-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. <code>nexus_default_context_path<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u0441\u0443\u044e \u0447\u0435\u0440\u0442\u0443, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440.: <code>nexus_default_context_path: '\/nexus\/'<\/code>.<\/p>\n<p><\/p>\n<h3 id=\"polzovatel-i-gruppa-os-nexus\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u041e\u0421 Nexus<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_os_group: 'nexus'\n    nexus_os_user: 'nexus'<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u0440\u0443\u043f\u043f\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u043b\u044f \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430\u043c\u0438 Nexus \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b, \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0440\u043e\u043b\u044c\u044e, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_os_user_home_dir: '\/home\/nexus'<\/code><\/pre>\n<p><\/p>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f nexus<\/p>\n<p><\/p>\n<h3 id=\"katalogi-ekzemplyarov-nexus\">\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 Nexus<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_installation_dir: '\/opt'\n    nexus_data_dir: '\/var\/nexus'\n    nexus_tmp_dir: \"{{ (ansible_os_family == 'RedHat') | ternary('\/var\/nexus-tmp', '\/tmp\/nexus') }}\"<\/code><\/pre>\n<p><\/p>\n<p>\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 Nexus.<\/p>\n<p><\/p>\n<ul>\n<li><code>nexus_installation_dir<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/li>\n<li><code>nexus_data_dir<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b. \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 blobstores <code>nexus_data_dir<\/code> \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0438\u0436\u0435 <code>nexus_blobstores<\/code>.<\/li>\n<li><code>nexus_tmp_dir<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u041f\u0443\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f redhat \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d \u0438\u0437 <code>\/tmp<\/code> \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043c\u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0438. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 #168.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"nastroyka-ispolzovanie-pamyati-nexus-jvm\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 Nexus JVM<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_min_heap_size: \"1200M\"\n    nexus_max_heap_size: \"{{ nexus_min_heap_size }}\"\n    nexus_max_direct_memory: \"2G\"<\/code><\/pre>\n<p><\/p>\n<p>\u042d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f Nexus. <strong>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/strong> <em>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/repomanager3\/system-requirements#SystemRequirements-Memory\">\u0440\u0430\u0437\u0434\u0435\u043b \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 nexus<\/a><\/noindex><\/em> \u0438 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u043e\u043d\u0438 \u0434\u0435\u043b\u0430\u044e\u0442.<\/p>\n<p><\/p>\n<p>\u041a\u0430\u043a \u0432\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435, \u0432\u043e\u0442 \u0432\u044b\u0434\u0435\u0440\u0436\u043a\u0430 \u0438\u0437 \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430:<\/p>\n<p><\/p>\n<blockquote><p>\u041d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c JVM heap \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u042d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442, \u043f\u0440\u0438\u0432\u043e\u0434\u044f \u043a \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p><\/blockquote>\n<p><\/p>\n<h3 id=\"parol-administratora\">\u041f\u0430\u0440\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_admin_password: 'changeme'<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u0430\u0440\u043e\u043b\u044c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u00abadmin\u00bb \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. <em>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/em>. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 [\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438](# change-admin-password-after-first-install), \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0437\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u043e\u043b\u0438.<\/p>\n<p><\/p>\n<p><strong>\u041d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 playbook, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c [\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ansible-vault] (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/user_guide\/vault.html\">https:\/\/docs.ansible.com\/ansible\/latest\/user_guide\/vault.html<\/a><\/noindex>) (\u043b\u0438\u0431\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u043b\u0438 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e include_vars)<\/strong><\/p>\n<p><\/p>\n<h3 id=\"anonimnyy-dostup-po-umolchaniyu\">\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_anonymous_access: false<\/code><\/pre>\n<p><\/p>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043b\u044e\u0447\u0435\u043d. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Anonymous+Access\">\u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"publichnoe-imya-hosta\">\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_public_hostname: 'nexus.vm'\n    nexus_public_scheme: https<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u043e\u043b\u043d\u043e\u0435 \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u0438 \u0441\u0445\u0435\u043c\u0430 (https \u0438\u043b\u0438 http), \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 Nexus \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p><\/p>\n<h3 id=\"dostup-api-dlya-etoy-roli\">\u0414\u043e\u0441\u0442\u0443\u043f API \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0440\u043e\u043b\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_api_hostname: localhost\n    nexus_api_scheme: http\n    nexus_api_validate_certs: \"{{ nexus_api_scheme == 'https' }}\"\n    nexus_api_context_path: \"{{ nexus_default_context_path }}\"\n    nexus_api_port: \"{{ nexus_default_port }}\"<\/code><\/pre>\n<p><\/p>\n<p>\u042d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u044e\u0442, \u043a\u0430\u043a \u0440\u043e\u043b\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a API Nexus \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<br \/>\n<strong>\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/strong><\/p>\n<p><\/p>\n<h3 id=\"nastroyka-obratnogo-proksi\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    httpd_setup_enable: false\n    httpd_server_name: \"{{ nexus_public_hostname }}\"\n    httpd_default_admin_email: \"admin@example.com\"\n    httpd_ssl_certificate_file: 'files\/nexus.vm.crt'\n    httpd_ssl_certificate_key_file: 'files\/nexus.vm.key'\n    # httpd_ssl_certificate_chain_file: \"{{ httpd_ssl_certificate_file }}\"\n    httpd_copy_ssl_files: true<\/code><\/pre>\n<p><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Run+Behind+a+Reverse+Proxy#RunBehindaReverseProxy-Example:ReverseProxySSLTerminationatBasePath\">\u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440 SSL<\/a><\/noindex>.<br \/>\n\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c httpd. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u043a\u043e\u0433\u0434\u0430 \u0434\u043b\u044f <code>httpd_setup_enable<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<code>true<\/code>, nexus \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 127.0.0.1:8081, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c <em>\u043d\u0435<\/em> \u0431\u0443\u0434\u0443\u0447\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0447\u0435\u0440\u0435\u0437 HTTP-\u043f\u043e\u0440\u0442 8081 \u0441 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<p><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2014 <code>nexus_public_hostname<\/code>. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <code>httpd_server_name<\/code> \u0441 \u0434\u0440\u0443\u0433\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p><\/p>\n<p>\u0421 <code>httpd_copy_ssl_files: true<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u0432\u044b\u0448\u0435\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 playbook \u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0432 apache.<\/p>\n<p><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 <code>httpd_copy_ssl_files: false<\/code> \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    # These specifies to the vhost where to find on the remote server file\n    # system the certificate files.\n    httpd_ssl_cert_file_location: \"\/etc\/pki\/tls\/certs\/wildcard.vm.crt\"\n    httpd_ssl_cert_key_location: \"\/etc\/pki\/tls\/private\/wildcard.vm.key\"\n    # httpd_ssl_cert_chain_file_location: \"{{ httpd_ssl_cert_file_location }}\"<\/code><\/pre>\n<p><\/p>\n<p><code>httpd_ssl_cert_chain_file_location<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0446\u0435\u043f\u043e\u0447\u043a\u0438<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    httpd_default_admin_email: \"admin@example.com\"<\/code><\/pre>\n<p><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/p>\n<p><\/p>\n<h3 id=\"konfiguraciya-ldap\">\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f LDAP<\/h3>\n<p><\/p>\n<p>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f LDAP \u0438 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_ldap_realm: false\n    ldap_connections: []<\/code><\/pre>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/LDAP\">\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f LDAP<\/a><\/noindex>, \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_ldap_realm: true\n    ldap_connections:\n      - ldap_name: 'My Company LDAP' # used as a key to update the ldap config\n        ldap_protocol: 'ldaps' # ldap or ldaps\n        ldap_hostname: 'ldap.mycompany.com'\n        ldap_port: 636\n        ldap_use_trust_store: false # Wether or not to use certs in the nexus trust store\n        ldap_search_base: 'dc=mycompany,dc=net'\n        ldap_auth: 'none' # or simple\n        ldap_auth_username: 'username' # if auth = simple\n        ldap_auth_password: 'password' # if auth = simple\n        ldap_user_base_dn: 'ou=users'\n        ldap_user_filter: '(cn=*)' # (optional)\n        ldap_user_object_class: 'inetOrgPerson'\n        ldap_user_id_attribute: 'uid'\n        ldap_user_real_name_attribute: 'cn'\n        ldap_user_email_attribute: 'mail'\n        ldap_user_subtree: false\n        ldap_map_groups_as_roles: false\n        ldap_group_base_dn: 'ou=groups'\n        ldap_group_object_class: 'posixGroup'\n        ldap_group_id_attribute: 'cn'\n        ldap_group_member_attribute: 'memberUid'\n        ldap_group_member_format: '${username}'\n        ldap_group_subtree: false<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 LDAP \u0434\u043b\u044f \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430), \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u00ab\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f\u00bb \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_ldap_realm: true\n    ldap_connection:\n      - ldap_name: 'Simplest LDAP config'\n        ldap_protocol: 'ldaps'\n        ldap_hostname: 'annuaire.mycompany.com'\n        ldap_search_base: 'dc=mycompany,dc=net'\n        ldap_port: 636\n        ldap_use_trust_store: false\n        ldap_user_id_attribute: 'uid'\n        ldap_user_real_name_attribute: 'cn'\n        ldap_user_email_attribute: 'mail'\n        ldap_user_object_class: 'inetOrgPerson'<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 LDAP \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 DSA):<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_ldap_realm: true\n    ldap_connections:\n      - ldap_name: 'LDAP config with DSA'\n        ldap_protocol: 'ldaps'\n        ldap_hostname: 'annuaire.mycompany.com'\n        ldap_port: 636\n        ldap_use_trust_store: false\n        ldap_auth: 'simple'\n        ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'\n        ldap_auth_password: \"{{ vault_ldap_dsa_password }}\" # better keep passwords in an ansible vault\n        ldap_search_base: 'dc=mycompany,dc=net'\n        ldap_user_base_dn: 'ou=users'\n        ldap_user_object_class: 'inetOrgPerson'\n        ldap_user_id_attribute: 'uid'\n        ldap_user_real_name_attribute: 'cn'\n        ldap_user_email_attribute: 'mail'\n        ldap_user_subtree: false<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 LDAP \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 DSA) + \u0433\u0440\u0443\u043f\u043f\u044b, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u043a \u0440\u043e\u043b\u0438:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_ldap_realm: true\n    ldap_connections\n      - ldap_name: 'LDAP config with DSA'\n        ldap_protocol: 'ldaps'\n        ldap_hostname: 'annuaire.mycompany.com'\n        ldap_port: 636\n        ldap_use_trust_store: false\n        ldap_auth: 'simple'\n        ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'\n        ldap_auth_password: \"{{ vault_ldap_dsa_password }}\" # better keep passwords in an ansible vault\n        ldap_search_base: 'dc=mycompany,dc=net'\n        ldap_user_base_dn: 'ou=users'\n        ldap_user_object_class: 'inetOrgPerson'\n        ldap_user_id_attribute: 'uid'\n        ldap_user_real_name_attribute: 'cn'\n        ldap_user_email_attribute: 'mail'\n        ldap_map_groups_as_roles: true\n        ldap_group_base_dn: 'ou=groups'\n        ldap_group_object_class: 'groupOfNames'\n        ldap_group_id_attribute: 'cn'\n        ldap_group_member_attribute: 'member'\n        ldap_group_member_format: 'uid=${username},ou=users,dc=mycompany,dc=net'\n        ldap_group_subtree: false<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 LDAP \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 DSA) + \u0433\u0440\u0443\u043f\u043f\u044b, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u043a \u0440\u043e\u043b\u0438:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_ldap_realm: true\n    ldap_connections:\n      - ldap_name: 'LDAP config with DSA'\n        ldap_protocol: 'ldaps'\n        ldap_hostname: 'annuaire.mycompany.com'\n        ldap_port: 636\n        ldap_use_trust_store: false\n        ldap_auth: 'simple'\n        ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'\n        ldap_auth_password: \"{{ vault_ldap_dsa_password }}\" # better keep passwords in an ansible vault\n        ldap_search_base: 'dc=mycompany,dc=net'\n        ldap_user_base_dn: 'ou=users'\n        ldap_user_object_class: 'inetOrgPerson'\n        ldap_user_id_attribute: 'uid'\n        ldap_user_real_name_attribute: 'cn'\n        ldap_user_email_attribute: 'mail'\n        ldap_map_groups_as_roles: true\n        ldap_map_groups_as_roles_type: 'dynamic'\n        ldap_user_memberof_attribute: 'memberOf'<\/code><\/pre>\n<p><\/p>\n<h3 id=\"privilegii\">\u041f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_privileges:\n      - name: all-repos-read # used as key to update a privilege\n        # type: &lt;one of application, repository-admin, repository-content-selector, repository-view, script or wildcard&gt;\n        description: 'Read &amp; Browse access to all repos'\n        repository: '*'\n        actions: # can be add, browse, create, delete, edit, read or  * (all)\n          - read\n          - browse\n        # pattern: pattern\n        # domain: domain\n        # script_name: name<\/code><\/pre>\n<p><\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Privileges\">\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0439<\/a><\/noindex> \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438.<\/p>\n<p><\/p>\n<p>\u042d\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    _nexus_privilege_defaults:\n      type: repository-view\n      format: maven2\n      actions:\n        - read<\/code><\/pre>\n<p><\/p>\n<h3 id=\"roli-vnutri-nexus-imeetsya-vidu\">\u0420\u043e\u043b\u0438 (\u0432\u043d\u0443\u0442\u0440\u0438 Nexus \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u0438\u0434\u0443)<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_roles:\n      - id: Developpers # can map to a LDAP group id, also used as a key to update a role\n        name: developers\n        description: All developers\n        privileges:\n          - nx-search-read\n          - all-repos-read\n        roles: [] # references to other role names<\/code><\/pre>\n<p><\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Roles\">\u0440\u043e\u043b\u0435\u0439<\/a><\/noindex> \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/p>\n<p><\/p>\n<h3 id=\"polzovateli\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_local_users: []\n      # - username: jenkins # used as key to update\n      #   state: present # default value if ommited, use 'absent' to remove user\n      #   first_name: Jenkins\n      #   last_name: CI\n      #   email: support@company.com\n      #   password: \"s3cr3t\"\n      #   roles:\n      #     - developers # role ID<\/code><\/pre>\n<p><\/p>\n<p>Local (non-LDAP) users\/accounts list to create in nexus.<\/p>\n<p><\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 (\u043d\u0435 LDAP) \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\/\u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432 Nexus. <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">      nexus_ldap_users: []\n      # - username: j.doe\n      #   state: present\n      #   roles:\n      #     - \"nx-admin\"<\/code><\/pre>\n<p><\/p>\n<p>\u041c\u0430\u043f\u043f\u0438\u043d\u0433 Ldap \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\/\u0440\u043e\u043b\u0435\u0439. \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>absent<\/code> \u0443\u0434\u0430\u043b\u0438\u0442 \u0440\u043e\u043b\u0438 \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0435\u0441\u043b\u0438 \u043e\u043d \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.<br \/>\n\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 Ldap \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u043e\u043b\u044c \u0434\u043b\u044f \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0435.<\/p>\n<p><\/p>\n<h3 id=\"selektory-kontenta\">\u0421\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">  nexus_content_selectors:\n  - name: docker-login\n    description: Selector for docker login privilege\n    search_expression: format==\"docker\" and path=~\"\/v2\/\"<\/code><\/pre>\n<p><\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441\u043c. <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/repomanager3\/configuration\/repository-management#RepositoryManagement-ContentSelectors\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u044e \u0441 <code>type: repository-content-selector<\/code> \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c<code>contentSelector<\/code><\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">- name: docker-login-privilege\n  type: repository-content-selector\n  contentSelector: docker-login\n  description: 'Login to Docker registry'\n  repository: '*'\n  actions:\n  - read\n  - browse<\/code><\/pre>\n<p><\/p>\n<h3 id=\"blobstores-i-repozitorii\">Blobstores \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_delete_default_repos: false<\/code><\/pre>\n<p><\/p>\n<p>Delete the repositories from the nexus install initial default configuration. This step is only executed on first-time install (when <code>nexus_data_dir<\/code> has been detected empty).<\/p>\n<p><\/p>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f Nexus. \u042d\u0442\u043e\u0442 \u0448\u0430\u0433 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 (\u043a\u043e\u0433\u0434\u0430 <code>nexus_data_dir<\/code> \u043f\u0443\u0441\u0442\u043e\u0439).<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_delete_default_blobstore: false<\/code><\/pre>\n<p><\/p>\n<p>Delete the default blobstore from the nexus install initial default configuration. This can be done only if <code>nexus_delete_default_repos: true<\/code> and all configured repositories (see below) have an explicit <code>blob_store: custom<\/code>. This step is only executed on first-time install (when <code>nexus_data_dir<\/code> has been detected empty).<\/p>\n<p><\/p>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0431\u043b\u043e\u0431\u043e\u0432 (\u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432) \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0431\u043b\u043e\u0431\u043e\u0432 (\u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432) \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u0435 <code>nexus_delete_default_repos: true<\/code>. \u042d\u0442\u043e\u0442 \u0448\u0430\u0433 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 (\u043a\u043e\u0433\u0434\u0430 <code>nexus_data_dir<\/code> \u043f\u0443\u0441\u0442\u043e\u0439).<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_blobstores: []\n    # example blobstore item :\n    # - name: separate-storage\n    #   type: file\n    #   path: \/mnt\/custom\/path\n    # - name: s3-blobstore\n    #   type: S3\n    #   config:\n    #     bucket: s3-blobstore\n    #     accessKeyId: \"{{ VAULT_ENCRYPTED_KEY_ID }}\"\n    #     secretAccessKey: \"{{ VAULT_ENCRYPTED_ACCESS_KEY }}\"<\/code><\/pre>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Repository+Management#RepositoryManagement-BlobStores\">Blobstores<\/a><\/noindex> to create. A blobstore path and a repository blobstore cannot be updated after initial creation (any update here will be ignored on re-provisionning).<\/p>\n<p><\/p>\n<p>Configuring blobstore on S3 is provided as a convenience and is not part of the automated tests we run on travis. Please note that storing on S3 is only recommended for instances deployed on AWS.<\/p>\n<p><\/p>\n<p>C\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Repository+Management#RepositoryManagement-BlobStores\">Blobstores<\/a><\/noindex>. \u041f\u0443\u0442\u044c \u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443 \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f (\u043b\u044e\u0431\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435).<\/p>\n<p><\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 BLOB-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 S3 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 S3 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432, \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0445 \u043d\u0430 AWS.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_repos_maven_proxy:\n      - name: central\n        remote_url: 'https:\/\/repo1.maven.org\/maven2\/'\n        layout_policy: permissive\n        # maximum_component_age: -1\n        # maximum_metadata_age: 1440\n        # negative_cache_enabled: true\n        # negative_cache_ttl: 1440\n      - name: jboss\n        remote_url: 'https:\/\/repository.jboss.org\/nexus\/content\/groups\/public-jboss\/'\n        # maximum_component_age: -1\n        # maximum_metadata_age: 1440\n        # negative_cache_enabled: true\n        # negative_cache_ttl: 1440\n    # example with a login\/password :\n    # - name: secret-remote-repo\n    #   remote_url: 'https:\/\/company.com\/repo\/secure\/private\/go\/away'\n    #   remote_username: 'username'\n    #   remote_password: 'secret'\n    #   # maximum_component_age: -1\n    #   # maximum_metadata_age: 1440\n    #   # negative_cache_enabled: true\n    #   # negative_cache_ttl: 1440<\/code><\/pre>\n<p><\/p>\n<p>\u0412\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Repository+Management#RepositoryManagement-ProxyRepository\">\u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440<\/a><\/noindex> Maven.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_repos_maven_hosted:\n      - name: private-release\n        version_policy: release\n        write_policy: allow_once  # one of \"allow\", \"allow_once\" or \"deny\"<\/code><\/pre>\n<p><\/p>\n<p>Maven <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Repository+Management#RepositoryManagement-HostedRepository\">hosted repositories<\/a><\/noindex> configuration. Negative cache config is optionnal and will default to the above values if omitted.<\/p>\n<p><\/p>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Repository+Management#RepositoryManagement-HostedRepository\">\u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0445 (hosted) \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432<\/a><\/noindex> Maven. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0430 (-1) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0448\u0435\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_repos_maven_group:\n      - name: public\n        member_repos:\n          - central\n          - jboss<\/code><\/pre>\n<p><\/p>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f <noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/Repository+Management#RepositoryManagement-RepositoryGroup\">\u0433\u0440\u0443\u043f\u043f\u044b<\/a><\/noindex> Maven.<\/p>\n<p><\/p>\n<p>\u0412\u0441\u0435 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">    _nexus_repos_maven_defaults:\n      blob_store: default # Note : cannot be updated once the repo has been created\n      strict_content_validation: true\n      version_policy: release # release, snapshot or mixed\n      layout_policy: strict # strict or permissive\n      write_policy: allow_once # one of \"allow\", \"allow_once\" or \"deny\"\n      maximum_component_age: -1  # Nexus gui default. For proxies only\n      maximum_metadata_age: 1440  # Nexus gui default. For proxies only\n      negative_cache_enabled: true # Nexus gui default. For proxies only\n      negative_cache_ttl: 1440 # Nexus gui default. For proxies only<\/code><\/pre>\n<p><\/p>\n<p>Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS and yum repository types:<br \/>\nsee <code>defaults\/main.yml<\/code> for these options:<\/p>\n<p><\/p>\n<p>\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS \u0438 yum \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u044b:<br \/>\n\u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <code>defaults\/main.yml<\/code> \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043e\u043f\u0446\u0438\u0439:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">      nexus_config_pypi: false\n      nexus_config_docker: false\n      nexus_config_raw: false\n      nexus_config_rubygems: false\n      nexus_config_bower: false\n      nexus_config_npm: false\n      nexus_config_gitlfs: false\n      nexus_config_yum: false<\/code><\/pre>\n<p><\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u043a\u0440\u043e\u043c\u0435 maven. \u042d\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e false<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">nexus_nuget_api_key_realm: false\nnexus_npm_bearer_token_realm: false\nnexus_docker_bearer_token_realm: false  # required for docker anonymous access<\/code><\/pre>\n<p><\/p>\n<p>Remote User Realm \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">nexus_rut_auth_realm: true<\/code><\/pre>\n<p><\/p>\n<p>\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0443\u0442\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">nexus_rut_auth_header: \"CUSTOM_HEADER\"<\/code><\/pre>\n<p><\/p>\n<h3 id=\"zaplanirovannye-zadachi\">\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_scheduled_tasks: []\n    #  #  Example task to compact blobstore :\n    #  - name: compact-docker-blobstore\n    #    cron: '0 0 22 * * ?'\n    #    typeId: blobstore.compact\n    #    task_alert_email: alerts@example.org  # optional\n    #    taskProperties:\n    #      blobstoreName: {{ nexus_blob_names.docker.blob }} # all task attributes are stored as strings by nexus internally\n    #  #  Example task to purge maven snapshots\n    #  - name: Purge-maven-snapshots\n    #    cron: '0 50 23 * * ?'\n    #    typeId: repository.maven.remove-snapshots\n    #    task_alert_email: alerts@example.org  # optional\n    #    taskProperties:\n    #      repositoryName: \"*\"  # * for all repos. Change to a repository name if you only want a specific one\n    #      minimumRetained: \"2\"\n    #      snapshotRetentionDays: \"2\"\n    #      gracePeriodInDays: \"2\"\n    #    booleanTaskProperties:\n    #      removeIfReleased: true\n    #  #  Example task to purge unused docker manifest and images\n    #  - name: Purge unused docker manifests and images\n    #    cron: '0 55 23 * * ?'\n    #    typeId: \"repository.docker.gc\"\n    #    task_alert_email: alerts@example.org  # optional\n    #    taskProperties:\n    #      repositoryName: \"*\"  # * for all repos. Change to a repository name if you only want a specific one\n    #  #  Example task to purge incomplete docker uploads\n    #  - name: Purge incomplete docker uploads\n    #    cron: '0 0 0 * * ?'\n    #    typeId: \"repository.docker.upload-purge\"\n    #    task_alert_email: alerts@example.org  # optional\n    #    taskProperties:\n    #      age: \"24\"<\/code><\/pre>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/help.sonatype.com\/display\/NXRM3\/System+Configuration#SystemConfiguration-ConfiguringandExecutingTasks\">\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/a><\/noindex> \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. <code>typeId<\/code> \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438<code>taskProperties<\/code>\/<code>booleanTaskProperties<\/code> \u043c\u043e\u0436\u043d\u043e \u0443\u0433\u0430\u0434\u0430\u0442\u044c \u043b\u0438\u0431\u043e:<\/p>\n<p><\/p>\n<ul>\n<li>\u0438\u0437 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0442\u0438\u043f\u043e\u0432 Java <code>org.sonatype.nexus.scheduling.TaskDescriptorSupport<\/code><\/li>\n<li>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044f HTML-\u0444\u043e\u0440\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/li>\n<li>\u043e\u0442 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 AJAX \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u0440\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u044b \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0431\u043b\u043e\u043a\u0435 yaml \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0445 \u0442\u0438\u043f\u0430<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li><code>taskProperties<\/code> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 (\u0442. \u0435. \u0438\u043c\u0435\u043d \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u0438\u043c\u0435\u043d \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449, \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 &#8230;).<\/li>\n<li><code>booleanTaskProperties<\/code> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 (\u0442. \u0435. \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u044b \u0432 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0435\u043a\u0441\u0443\u0441\u0430).<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"rezervnye-kopii\">\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438<\/h3>\n<p><\/p>\n<pre><code class=\"plaintext\">      nexus_backup_configure: false\n      nexus_backup_cron: '0 0 21 * * ?'  # See cron expressions definition in nexus create task gui\n      nexus_backup_dir: '\/var\/nexus-backup'\n      nexus_restore_log: '{{ nexus_backup_dir }}\/nexus-restore.log'\n      nexus_backup_rotate: false\n      nexus_backup_rotate_first: false\n      nexus_backup_keep_rotations: 4  # Keep 4 backup rotation by default (current + last 3)<\/code><\/pre>\n<p><\/p>\n<p>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e, \u043f\u043e\u043a\u0430 \u0432\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435 <code>nexus_backup_configure<\/code> \u0432 <code>true<\/code>.<br \/>\n\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432 Nexus<br \/>\n\u0441 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432 <code>nexus_backup_cron<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 21:00 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c).<br \/>\n\u0421\u043c. [\u0428\u0430\u0431\u043b\u043e\u043d groovy \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438](templates \/ backup.groovy.j2) \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<br \/>\n\u042d\u0442\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 <code>nexus_scheduled_tasks<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b<br \/>\n\u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u0432 \u0441\u0432\u043e\u0435\u043c playbook.<\/p>\n<p><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0440\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\/\u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 <code>nexus_backup_rotate: true<\/code> \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0435\u043a\u0430\u043f\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>nexus_backup_keep_rotations<\/code> (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 4).<\/p>\n<p><\/p>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f,<br \/>\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <code>nexus_backup_rotate_first: true<\/code>. \u042d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434 \u0431\u0435\u043a\u0430\u043f\u043e\u043c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u043e\u0442\u0438\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0435\u043c \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0442\u0430\u0440\u044b\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438<br \/>\n\u0443\u0434\u0430\u043b\u044f\u0442\u0441\u044f \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0431\u0435\u043a\u0430\u043f \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u043d.<\/p>\n<p><\/p>\n<h4 id=\"procedura-vosstanovleniya\">\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/h4>\n<p><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 playbook \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>-e nexus_restore_point=&lt;YYYY-MM-dd-HH-mm-ss&gt;<\/code><br \/>\n(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 2017-12-17-21-00-00 \u0434\u043b\u044f 17 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2017 \u0432 21:00<\/p>\n<p><\/p>\n<h4 id=\"udalenie-nexus\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 nexus<\/h4>\n<p><\/p>\n<p><strong>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0434\u0430\u043b\u0438\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0440\u0430\u043d\u0435\u0435, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e<\/strong><\/p>\n<p><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>nexus_purge<\/code>, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441 \u043d\u0443\u043b\u044f \u0438 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 nexus \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">ansible-playbook -i your\/inventory.ini your_nexus_playbook.yml -e nexus_purge=true<\/code><\/pre>\n<p><\/p>\n<h4 id=\"izmenit-parol-administratora-posle-pervoy-ustanovki\">\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/h4>\n<p><\/p>\n<pre><code class=\"plaintext\">    nexus_default_admin_password: 'admin123'<\/code><\/pre>\n<p><\/p>\n<p><strong>\u042d\u0442\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u0432 \u0432\u0430\u0448\u0435\u043c playbook<\/strong>. \u042d\u0442\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 Nexus \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0430 <code>nexus_admin_password<\/code>.<\/p>\n<p><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f <code>nexus_admin_password<\/code> \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043a\u043d\u0438\u0433\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">ansible-playbook -i your\/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPassword<\/code><\/pre>\n<p><\/p>\n<p>\u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u043a\u0430\u043d\u0430\u043b \u043f\u043e Nexus Sonatype: <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_nexus_sonatype\">https:\/\/t.me\/ru_nexus_sonatype<\/a><\/noindex><\/p>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a><\/noindex>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<h2 class=\"default-block__polling-title\">\u041a\u0430\u043a\u0438\u043c\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043c\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Sonatype Nexus \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Sonatype Nexus \u043f\u043b\u0430\u0442\u043d\u044b\u0439<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Artifactory \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Artifactory \u043f\u043b\u0430\u0442\u043d\u044b\u0439<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Harbor<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Pulp<\/p>\n<\/li>\n<\/ul>\n<p>    \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 9 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 3 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<br \/>\n<br \/>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/473358\/\">habr.com<\/a><\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Sonatype Nexus \u2013 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 Java (Maven), \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 Docker, Python, Ruby, NPM, Bower, RPM-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, gitlfs, Apt, Go, Nuget, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Sonatype Nexus? \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432; \u0414\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430; \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Sonatype [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39513,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39512","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Sonatype Nexus \u2013 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 Java (Maven), \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 Docker, Python, Ruby, NPM, Bower, RPM-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, gitlfs, Apt, Go, Nuget, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Sonatype Nexus? \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432; \u0414\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430; \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Sonatype\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nexus Sonatype \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0434\u0445\u043e\u0434 infrastructure as code | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Sonatype Nexus \u2013 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 Java (Maven), \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 Docker, Python, Ruby, NPM, Bower, RPM-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, gitlfs, Apt, Go, Nuget, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Sonatype Nexus? \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432; \u0414\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430; \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Sonatype\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:34:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:34:37+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Installazione e configurazione di Nexus Sonatype utilizzando l'approccio infrastructure as code | ProHoster","description":"Sonatype Nexus \u00e8 una piattaforma integrata che consente agli sviluppatori di gestire e controllare le dipendenze Java (Maven), le immagini Docker, Python, Ruby, NPM, Bower, i pacchetti RPM, gitlfs, Apt, Go, Nuget e di distribuire il proprio software. Qual \u00e8 l'utilit\u00e0 di Sonatype Nexus? Per la memorizzazione di artefatti privati; per la cache di artefatti scaricati da Internet; artefatti supportati nella fornitura base di Sonatype.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nexus Sonatype \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043e\u0434\u0445\u043e\u0434 infrastructure as code | ProHoster","og:description":"Sonatype Nexus \u2013 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 Java (Maven), \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438 Docker, Python, Ruby, NPM, Bower, RPM-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438, gitlfs, Apt, Go, Nuget, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Sonatype Nexus? \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432; \u0414\u043b\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430; \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Sonatype","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/ustanovka-i-nastrojka-nexus-sonatype-ispolzuya-podhod-infrastructure-as-code","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:34:37+00:00","article:modified_time":"2019-10-31T19:34:37+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39512","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 02:10:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:48:52","updated":"2026-01-24 02:10:21"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/39512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=39512"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/39512\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/39513"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=39512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=39512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=39512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}