เด•เต‹เดกเต เดธเดฎเต€เดชเดจเดฎเดพเดฏเดฟ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Nexus Sonatype เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

Java (Maven) เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ, Docker, Python, Ruby, NPM, Bower images, RPM เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ, gitlfs, Apt, Go, Nuget เดŽเดจเตเดจเดฟเดต เดชเตเดฐเต‹เด•เตเดธเดฟ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เต เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เดธเด‚เดฏเต‹เดœเดฟเดค เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเดพเดฃเต Sonatype Nexus.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเต‹เดฃเดŸเตˆเดชเตเดชเต เดจเต†เด•เตเดธเดธเต เดตเต‡เดฃเตเดŸเดคเต?

  • เดธเตเดตเด•เดพเดฐเตเดฏ เดชเตเดฐเดพเดตเดธเตเดคเตเด•เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต;
  • เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ เด•เดพเดทเต† เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ;

เด…เดŸเดฟเดธเตเดฅเดพเดจ Sonatype Nexus เดชเดพเด•เตเด•เต‡เดœเดฟเตฝ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ:

  • เดœเดพเดต, เดฎเดพเดตเต†เตป (เดœเดพเตผ)
  • เดกเต‹เด•เตเด•เตผ
  • เดชเตˆเดคเตเดคเตบ (เดชเดฟเดชเตเดชเต)
  • เดฎเดพเดฃเดฟเด•เตเดฏเด‚ (เดฐเดคเตเดจเด‚)
  • NPM
  • เดฌเต‹เดตเตผ
  • เดฏเด‚ (rpm)
  • gitlfs
  • เด…เดธเด‚เดธเตเด•เตƒเดคเดฎเดพเดฏ
  • เด†เดชเตเดฑเตเดฑเต (เดกเต†เดฌเต)
  • Go
  • เดจเตเดฏเต‚เดœเต†เดฑเตเดฑเต

เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดณเตเดณ เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ:

  • เด•เดฎเตเดชเต‡เดพเดธเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดฏเดพเตพ
  • เด•เต‡เดพเดจเตป
  • CPAN
  • ELPA
  • เดนเต†เตฝเด‚
  • P2
  • R

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Sonatype Nexus เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต https://github.com/ansible-ThoTeam/nexus3-oss

เด†เดตเดถเตเดฏเด•เดคเด•เตพ

  • เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เด…เตปเดธเดฟเดฌเดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดตเดพเดฏเดฟเด•เตเด•เตเด•.
  • เด…เตปเดธเดฟเดฌเดฟเตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• pip install ansible เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเดฟเตฝ.
  • เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• geerlingguy.java เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเดฟเตฝ.
  • เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• geerlingguy.apache เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเดฟเตฝ.
  • CentOS 7, Ubuntu Xenial (16.04), Bionic (18.04), Debian Jessie and Stretch เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดˆ เดฑเต‹เตพ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต.
  • jmespath เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเดฟเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป: sudo pip install -r requirements.txt
  • nexus.yml เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดซเดฏเตฝ (เด‰เดฆเดพเดนเดฐเดฃเด‚ เดšเตเดตเดŸเต†) เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•
  • nexus เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• ansible-playbook -i host nexus.yml

Maven (java), Docker, Python, Ruby, NPM, Bower, RPM, gitlfs เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต LDAP เด‡เดฒเตเดฒเดพเดคเต† nexus เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ ansible-playbook.

---
- name: Nexus
  hosts: nexus
  become: yes

  vars:
    nexus_timezone: 'Asia/Omsk'
    nexus_admin_password: "admin123"
    nexus_public_hostname: 'apatsev-nexus-playbook'
    httpd_setup_enable: false
    nexus_privileges:
      - name: all-repos-read
        description: 'Read & Browse access to all repos'
        repository: '*'
        actions:
          - read
          - browse
      - name: company-project-deploy
        description: 'Deployments to company-project'
        repository: company-project
        actions:
          - add
          - edit
    nexus_roles:
      - id: Developpers # maps to the LDAP group
        name: developers
        description: All developers
        privileges:
          - nx-search-read
          - all-repos-read
          - company-project-deploy
        roles: []
    nexus_local_users:
      - username: jenkins # used as key to update
        first_name: Jenkins
        last_name: CI
        email: [email protected]
        password: "s3cr3t"
        roles:
          - Developpers # role ID here
    nexus_blobstores:
      - name: company-artifacts
        path: /var/nexus/blobs/company-artifacts
    nexus_scheduled_tasks:
      - name: compact-blobstore
        cron: '0 0 22 * * ?'
        typeId: blobstore.compact
        taskProperties:
          blobstoreName: 'company-artifacts'

    nexus_repos_maven_proxy:
      - name: central
        remote_url: 'https://repo1.maven.org/maven2/'
        layout_policy: permissive
      - name: jboss
        remote_url: 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
      - name: vaadin-addons
        remote_url: 'https://maven.vaadin.com/vaadin-addons/'
      - name: jaspersoft
        remote_url: 'https://jaspersoft.artifactoryonline.com/jaspersoft/jaspersoft-repo/'
        version_policy: mixed
    nexus_repos_maven_hosted:
      - name: company-project
        version_policy: mixed
        write_policy: allow
        blob_store: company-artifacts
    nexus_repos_maven_group:
      - name: public
        member_repos:
          - central
          - jboss
          - vaadin-addons
          - jaspersoft

    # Yum. Change nexus_config_yum to true for create yum repository
    nexus_config_yum: true
    nexus_repos_yum_hosted:
      - name: private_yum_centos_7
        repodata_depth: 1
    nexus_repos_yum_proxy:
      - name: epel_centos_7_x86_64
        remote_url: http://download.fedoraproject.org/pub/epel/7/x86_64
        maximum_component_age: -1
        maximum_metadata_age: -1
        negative_cache_ttl: 60
      - name: centos-7-os-x86_64
        remote_url: http://mirror.centos.org/centos/7/os/x86_64/
        maximum_component_age: -1
        maximum_metadata_age: -1
        negative_cache_ttl: 60
    nexus_repos_yum_group:
      - name: yum_all
        member_repos:
          - private_yum_centos_7
          - epel_centos_7_x86_64

    # NPM. Change nexus_config_npm to true for create npm repository
    nexus_config_npm: true
    nexus_repos_npm_hosted: []
    nexus_repos_npm_group:
      - name: npm-public
        member_repos:
          - npm-registry
    nexus_repos_npm_proxy:
      - name: npm-registry
        remote_url: https://registry.npmjs.org/
        negative_cache_enabled: false

    # Docker. Change nexus_config_docker to true for create docker repository
    nexus_config_docker: true
    nexus_repos_docker_hosted:
      - name: docker-hosted
        http_port: "{{ nexus_docker_hosted_port }}"
        v1_enabled: True
    nexus_repos_docker_proxy:
      - name: docker-proxy
        http_port: "{{ nexus_docker_proxy_port }}"
        v1_enabled: True
        index_type: "HUB"
        remote_url: "https://registry-1.docker.io"
        use_nexus_certificates_to_access_index: false
        maximum_component_age: 1440
        maximum_metadata_age: 1440
        negative_cache_enabled: true
        negative_cache_ttl: 1440
    nexus_repos_docker_group:
      - name: docker-group
        http_port: "{{ nexus_docker_group_port }}"
        v1_enabled: True
        member_repos:
          - docker-hosted
          - docker-proxy

    # Bower. Change nexus_config_bower to true for create bower repository
    nexus_config_bower: true
    nexus_repos_bower_hosted:
      - name: bower-hosted
    nexus_repos_bower_proxy:
      - name: bower-proxy
        index_type: "proxy"
        remote_url: "https://registry.bower.io"
        use_nexus_certificates_to_access_index: false
        maximum_component_age: 1440
        maximum_metadata_age: 1440
        negative_cache_enabled: true
        negative_cache_ttl: 1440
    nexus_repos_bower_group:
      - name: bower-group
        member_repos:
          - bower-hosted
          - bower-proxy

    # Pypi. Change nexus_config_pypi to true for create pypi repository
    nexus_config_pypi: true
    nexus_repos_pypi_hosted:
      - name: pypi-hosted
    nexus_repos_pypi_proxy:
      - name: pypi-proxy
        index_type: "proxy"
        remote_url: "https://pypi.org/"
        use_nexus_certificates_to_access_index: false
        maximum_component_age: 1440
        maximum_metadata_age: 1440
        negative_cache_enabled: true
        negative_cache_ttl: 1440
    nexus_repos_pypi_group:
      - name: pypi-group
        member_repos:
          - pypi-hosted
          - pypi-proxy

    # rubygems. Change nexus_config_rubygems to true for create rubygems repository
    nexus_config_rubygems: true
    nexus_repos_rubygems_hosted:
      - name: rubygems-hosted
    nexus_repos_rubygems_proxy:
      - name: rubygems-proxy
        index_type: "proxy"
        remote_url: "https://rubygems.org"
        use_nexus_certificates_to_access_index: false
        maximum_component_age: 1440
        maximum_metadata_age: 1440
        negative_cache_enabled: true
        negative_cache_ttl: 1440
    nexus_repos_rubygems_group:
      - name: rubygems-group
        member_repos:
          - rubygems-hosted
          - rubygems-proxy

    # gitlfs. Change nexus_config_gitlfs to true for create gitlfs repository
    nexus_config_gitlfs: true
    nexus_repos_gitlfs_hosted:
      - name: gitlfs-hosted

  roles:
    - { role: geerlingguy.java }
    # Debian/Ubuntu only
    # - { role: geerlingguy.apache, apache_create_vhosts: no, apache_mods_enabled: ["proxy_http.load", "headers.load"], apache_remove_default_vhost: true, tags: ["geerlingguy.apache"] }
    # RedHat/CentOS only
    - { role: geerlingguy.apache, apache_create_vhosts: no, apache_remove_default_vhost: true, tags: ["geerlingguy.apache"] }
    - { role: ansible-thoteam.nexus3-oss, tags: ['ansible-thoteam.nexus3-oss'] }

เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเตเด•เตพ:

เด•เต‹เดกเต เดธเดฎเต€เดชเดจเดฎเดพเดฏเดฟ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Nexus Sonatype เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด•เต‹เดกเต เดธเดฎเต€เดชเดจเดฎเดพเดฏเดฟ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Nexus Sonatype เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฑเต‹เดณเตเด•เตพ

เดฑเต‹เตพ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ

เดธเตเดฅเดฟเดฐ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ (เด•เดพเดฃเตเด• default/main.yml):

เดชเตŠเดคเตเดตเดพเดฏ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ

    nexus_version: ''
    nexus_timezone: 'UTC'

เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ, เดฑเต‹เตพ Nexus-เดจเตเดฑเต† เดฒเดญเตเดฏเดฎเดพเดฏ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด‚. เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเดพเดฑเตเดฑเดฟเด•เตเด•เตŠเดฃเตเดŸเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเดคเดฟเดชเตเดชเต เดถเดฐเดฟเดฏเดพเด•เตเด•เดพเด‚ nexus_version. เดฒเดญเตเดฏเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเตเด•เตพ เด‡เดตเดฟเดŸเต† เด•เดพเดฃเตเด• https://www.sonatype.com/download-oss-sonatype.

เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† Nexus เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดฑเต‹เตพ เดถเตเดฐเดฎเดฟเด•เตเด•เตเด‚.

เดจเดฟเด™เตเด™เตพ Nexus-เดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดจเต‡เด•เตเด•เดพเตพ เดชเดดเดฏ เดชเดคเดฟเดชเตเดชเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝ, เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดชเดคเดฟเดชเตเดชเดฟเตฝ เดฒเดญเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดฃเด‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 3.8.0, git lfs repo-เดจเต‡เด•เตเด•เดพเตพ เดตเดฒเดฟเดฏ nexus-เดจเต yum เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดนเต‹เดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฒเดญเตเดฏเดฎเดพเดฃเต. 3.3.0 เดจเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเดฒเตเดณเตเดณ เดจเต†เด•เตเดธเดธเดฟเดจเต เดฎเตเดคเดฒเดพเดฏเดต)

nexus timezone เดœเดพเดต เดŸเตˆเด‚ เดธเต‹เดฃเดฟเดจเตเดฑเต† เดชเต‡เดฐเดพเดฃเต, nexus_scheduled เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เตเดฐเต‹เตบ เดŽเด•เตโ€Œเดธเตโ€Œเดชเตเดฐเดทเดจเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเด‚.

Nexus เดชเต‹เตผเดŸเตเดŸเตเด‚ เดธเดจเตเดฆเตผเดญ เดชเดพเดคเดฏเตเด‚

    nexus_default_port: 8081
    nexus_default_context_path: '/'

เดœเดพเดต เด•เดฃเด•เตเดทเตป เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเดŸเต† เดชเต‹เตผเดŸเตเดŸเตเด‚ เดธเดจเตเดฆเตผเดญ เดชเดพเดคเดฏเตเด‚. nexus_default_context_path เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เดซเต‹เตผเดตเต‡เดกเต เดธเตเดฒเดพเดทเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เด‰เดฆเดพ: nexus_default_context_path: '/nexus/'.

Nexus OS เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเตเด‚ เด—เตเดฐเต‚เดชเตเดชเตเด‚

    nexus_os_group: 'nexus'
    nexus_os_user: 'nexus'

Nexus เดซเดฏเดฒเตเด•เตพ เดธเตเดตเดจเตเดคเดฎเดพเด•เตเด•เดพเดจเตเด‚ เดธเต‡เดตเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเตเด‚ เด—เตเดฐเต‚เดชเตเดชเตเด‚ เด’เดฐเดพเดณเต† เด•เดพเดฃเดพเดคเดพเดฏเดพเตฝ เดฑเต‹เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚.

    nexus_os_user_home_dir: '/home/nexus'

nexus เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดนเต‹เด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดฎเดพเดฑเตเดฑเดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•

Nexus เด‡เตปเดธเตเดฑเตเดฑเตปเดธเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เตพ

    nexus_installation_dir: '/opt'
    nexus_data_dir: '/var/nexus'
    nexus_tmp_dir: "{{ (ansible_os_family == 'RedHat') | ternary('/var/nexus-tmp', '/tmp/nexus') }}"

Nexus เด•เดพเดฑเตเดฑเดฒเต‹เด—เตเด•เตพ.

  • nexus_installation_dir เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • nexus_data_dir เดŽเดฒเตเดฒเดพ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด‚ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเตเด‚ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดค เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดฌเตเดฒเต‹เดฌเตโ€Œเดธเตเดฑเตเดฑเต‹เตผ เดชเดพเดคเด•เตพ nexus_data_dir เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดคเดพเดดเต† เด•เดพเดฃเตเด• nexus_blobstores.
  • nexus_tmp_dir เดŽเดฒเตเดฒเดพ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเดฒเตเด•เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. redhat-เดจเตเดณเตเดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเดพเดคเตเดคเต เด‡เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เดฟ /tmp เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เด•เตเดฒเต€เดจเดฟเด‚เด—เต เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดพเดงเตเดฏเดฎเดพเดฏ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป. #168 เด•เดพเดฃเตเด•.

Nexus JVM เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดฏเต‹เด—เด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

    nexus_min_heap_size: "1200M"
    nexus_max_heap_size: "{{ nexus_min_heap_size }}"
    nexus_max_direct_memory: "2G"

Nexus-เดจเตเดณเตเดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด‡เดตเดฏเดพเดฃเต. เดฆเดฏเดตเดพเดฏเดฟ เดˆ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเดฐเตเดคเต เดจเดฟเด™เตเด™เตพ เดตเดพเดฏเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ nexus เดธเดฟเดธเตเดฑเตเดฑเด‚ เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดฎเต†เดฎเตเดฎเดฑเดฟ เดตเดฟเดญเดพเด—เด‚ เด…เดตเตผ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดฎเตเด•เดณเดฟเดฒเต† เดชเตเดฐเดฎเดพเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเตเดงเดฐเดฃเดฟ เด‡เดคเดพ:

เดชเตเดฐเด•เดŸเดจเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเดคเตเดคเดฟเตฝ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพเด•เตเด•เดชเตเดชเตเดฑเด‚ JVM เดนเต€เดชเตเดชเต เดฎเต†เดฎเตเดฎเดฑเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เด‡เดคเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดตเดฟเดชเดฐเต€เดค เดซเดฒเดฎเตเดฃเตเดŸเดพเด•เตเด•เดพเด‚, เด‡เดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต.

เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เดชเดพเดธเตเดตเต‡เดกเต

    nexus_admin_password: 'changeme'

เดธเดœเตเดœเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ "เด…เดกเตเดฎเดฟเตป" เด…เด•เตเด•เต—เดฃเตเดŸเต เดชเดพเดธเตโ€Œเดตเต‡เดกเต. เด†เดฆเตเดฏเดคเตเดคเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเดจเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‚. เด’เดฐเต เดฑเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดฟเดจเตเดจเต€เดŸเต เด…เดคเต เดฎเดพเดฑเตเดฑเดฃเดฎเต†เด™เตเด•เดฟเตฝ [เด†เดฆเตเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเต เดถเต‡เดทเด‚ เด…เดกเตเดฎเดฟเตป เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดฎเดพเดฑเตเดฑเตเด•](# change-admin-password-after-first-install) เด•เดพเดฃเตเด•.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดชเตเดฒเต‡เดฌเตเด•เตเด•เดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดตเดพเดšเด•เดคเตเดคเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เดฐเตเดคเต†เดจเตเดจเต เดถเด•เตเดคเดฎเดพเดฏเดฟ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ [ansible-vault encryption] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (เด’เดจเตเดจเตเด•เดฟเตฝ เด‡เตปเดฒเตˆเตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดซเดฏเดฒเดฟเตฝ เดฒเต‹เดกเตเดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เด‰เดฆเดพ: include_vars)

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด…เดœเตเดžเดพเดค เดชเตเดฐเดตเต‡เดถเดจเด‚

    nexus_anonymous_access: false

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด…เดœเตเดžเดพเดค เด†เด•เตโ€Œเดธเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเด• เด…เดœเตเดžเดพเดค เดชเตเดฐเดตเต‡เดถเดจเด‚.

เดชเตŠเดคเต เดนเต‹เดธเตเดฑเตเดฑเต เดจเดพเดฎเด‚

    nexus_public_hostname: 'nexus.vm'
    nexus_public_scheme: https

เดชเต‚เตผเดฃเตเดฃ เดฏเต‹เด—เตเดฏเดคเดฏเตเดณเตเดณ เดกเตŠเดฎเต†เดฏเตเตป เดจเดพเดฎเดตเตเด‚ เดธเตเด•เต€เดฎเตเด‚ (https เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ http) เด…เดคเดฟเดจเตเดฑเต† เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เต Nexus เด‰เดฆเดพเดนเดฐเดฃเด‚ เดฒเดญเตเดฏเดฎเดพเด•เตเด‚.

เดˆ เดฑเต‹เดณเดฟเดจเตเดณเตเดณ API เด†เด•เตเดธเดธเต

    nexus_api_hostname: localhost
    nexus_api_scheme: http
    nexus_api_validate_certs: "{{ nexus_api_scheme == 'https' }}"
    nexus_api_context_path: "{{ nexus_default_context_path }}"
    nexus_api_port: "{{ nexus_default_port }}"

เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดชเตเดฐเตŠเดตเดฟเดทเดจเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ Nexus API-เดฒเต‡เด•เตเด•เต เดฑเต‹เตพ เดŽเด™เตเด™เดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต.
เดตเดฟเดชเตเดฒเดฎเดพเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเด‚. เดˆ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต‡เด•เตเด•เดฟเดฒเตเดฒ

เด’เดฐเต เดฑเดฟเดตเต‡เดดเตเดธเต เดชเตเดฐเต‹เด•เตเดธเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

    httpd_setup_enable: false
    httpd_server_name: "{{ nexus_public_hostname }}"
    httpd_default_admin_email: "[email protected]"
    httpd_ssl_certificate_file: 'files/nexus.vm.crt'
    httpd_ssl_certificate_key_file: 'files/nexus.vm.key'
    # httpd_ssl_certificate_chain_file: "{{ httpd_ssl_certificate_file }}"
    httpd_copy_ssl_files: true

เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• เดŽเดธเตเดŽเดธเตเดŽเตฝ เดฑเดฟเดตเต‡เดดเตเดธเต เดชเตเดฐเต‹เด•เตเดธเดฟ.
เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ httpd เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดฃเด‚. เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•: เดŽเดชเตเดชเต‹เตพ httpd_setup_enable เดธเต†เดฑเตเดฑเต เดฎเต‚เดฒเตเดฏเด‚true, nexus เด•เต‹เตบเดŸเดพเด•เตเดฑเตเดฑเตเด•เตพ 127.0.0.1:8081, เด…เด™เตเด™เดจเต† เด…เดฒเตเดฒ เดฌเดพเดนเตเดฏ IP เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต HTTP เดชเต‹เตผเดŸเตเดŸเต 8081 เดตเดดเดฟ เดจเต‡เดฐเดฟเดŸเตเดŸเต เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.

เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดนเต‹เดธเตเดฑเตเดฑเตเดจเดพเดฎเด‚ nexus_public_hostname. เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเต‡เดฐเตเด•เตพ เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ httpd_server_name เดฎเดฑเตเดฑเตŠเดฐเต เด…เตผเดคเตเดฅเด‚ เด•เตŠเดฃเตเดŸเต.

ะก httpd_copy_ssl_files: true (เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ) เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เด…เดต เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเด•เตผเดคเตเดคเดฟ เด…เดชเตเดชเดพเดšเตเดšเต†เดฏเดฟเตฝ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด‚.

เดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• httpd_copy_ssl_files: false เด•เต‚เดŸเดพเดคเต† เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดจเตฝเด•เตเด•:

    # These specifies to the vhost where to find on the remote server file
    # system the certificate files.
    httpd_ssl_cert_file_location: "/etc/pki/tls/certs/wildcard.vm.crt"
    httpd_ssl_cert_key_location: "/etc/pki/tls/private/wildcard.vm.key"
    # httpd_ssl_cert_chain_file_location: "{{ httpd_ssl_cert_file_location }}"

httpd_ssl_cert_chain_file_location เด“เดชเตเดทเดฃเตฝ เด†เดฃเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเต†เดฏเดฟเตป เดซเดฏเตฝ เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเดคเต† เดตเดฟเดŸเดฃเด‚

    httpd_default_admin_email: "[email protected]"

เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด…เดกเตเดฎเดฟเตป เด‡เดฎเต†เดฏเดฟเตฝ เดตเดฟเดฒเดพเดธเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•

LDAP เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

LDAP เด•เดฃเด•เตเดทเดจเตเด•เดณเตเด‚ เดธเตเดฐเด•เตเดทเดพ เดฎเต‡เด–เดฒเดฏเตเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฃเต

    nexus_ldap_realm: false
    ldap_connections: []

LDAP เด•เดฃเด•เตเดทเดจเตเด•เตพ, เด“เดฐเต‹ เด˜เดŸเด•เด™เตเด™เดณเตเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

    nexus_ldap_realm: true
    ldap_connections:
      - ldap_name: 'My Company LDAP' # used as a key to update the ldap config
        ldap_protocol: 'ldaps' # ldap or ldaps
        ldap_hostname: 'ldap.mycompany.com'
        ldap_port: 636
        ldap_use_trust_store: false # Wether or not to use certs in the nexus trust store
        ldap_search_base: 'dc=mycompany,dc=net'
        ldap_auth: 'none' # or simple
        ldap_auth_username: 'username' # if auth = simple
        ldap_auth_password: 'password' # if auth = simple
        ldap_user_base_dn: 'ou=users'
        ldap_user_filter: '(cn=*)' # (optional)
        ldap_user_object_class: 'inetOrgPerson'
        ldap_user_id_attribute: 'uid'
        ldap_user_real_name_attribute: 'cn'
        ldap_user_email_attribute: 'mail'
        ldap_user_subtree: false
        ldap_map_groups_as_roles: false
        ldap_group_base_dn: 'ou=groups'
        ldap_group_object_class: 'posixGroup'
        ldap_group_id_attribute: 'cn'
        ldap_group_member_attribute: 'memberUid'
        ldap_group_member_format: '${username}'
        ldap_group_subtree: false

เด…เดœเตเดžเดพเดค เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ LDAP เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป (เด…เดœเตเดžเดพเดค เดฌเตˆเตปเดกเดฟเด‚เด—เต), เด‡เดคเตเด‚ เด’เดฐเต "เดฎเดฟเดจเดฟเดฎเตฝ" เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฃเต:

    nexus_ldap_realm: true
    ldap_connection:
      - ldap_name: 'Simplest LDAP config'
        ldap_protocol: 'ldaps'
        ldap_hostname: 'annuaire.mycompany.com'
        ldap_search_base: 'dc=mycompany,dc=net'
        ldap_port: 636
        ldap_use_trust_store: false
        ldap_user_id_attribute: 'uid'
        ldap_user_real_name_attribute: 'cn'
        ldap_user_email_attribute: 'mail'
        ldap_user_object_class: 'inetOrgPerson'

เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ LDAP เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป (DSA เด…เด•เตเด•เต—เดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต):

    nexus_ldap_realm: true
    ldap_connections:
      - ldap_name: 'LDAP config with DSA'
        ldap_protocol: 'ldaps'
        ldap_hostname: 'annuaire.mycompany.com'
        ldap_port: 636
        ldap_use_trust_store: false
        ldap_auth: 'simple'
        ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'
        ldap_auth_password: "{{ vault_ldap_dsa_password }}" # better keep passwords in an ansible vault
        ldap_search_base: 'dc=mycompany,dc=net'
        ldap_user_base_dn: 'ou=users'
        ldap_user_object_class: 'inetOrgPerson'
        ldap_user_id_attribute: 'uid'
        ldap_user_real_name_attribute: 'cn'
        ldap_user_email_attribute: 'mail'
        ldap_user_subtree: false

เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ LDAP เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป (DSA เด…เด•เตเด•เต—เดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต) + เดฑเต‹เดณเตเด•เดณเดพเดฏเดฟ เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดค เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ:

    nexus_ldap_realm: true
    ldap_connections
      - ldap_name: 'LDAP config with DSA'
        ldap_protocol: 'ldaps'
        ldap_hostname: 'annuaire.mycompany.com'
        ldap_port: 636
        ldap_use_trust_store: false
        ldap_auth: 'simple'
        ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'
        ldap_auth_password: "{{ vault_ldap_dsa_password }}" # better keep passwords in an ansible vault
        ldap_search_base: 'dc=mycompany,dc=net'
        ldap_user_base_dn: 'ou=users'
        ldap_user_object_class: 'inetOrgPerson'
        ldap_user_id_attribute: 'uid'
        ldap_user_real_name_attribute: 'cn'
        ldap_user_email_attribute: 'mail'
        ldap_map_groups_as_roles: true
        ldap_group_base_dn: 'ou=groups'
        ldap_group_object_class: 'groupOfNames'
        ldap_group_id_attribute: 'cn'
        ldap_group_member_attribute: 'member'
        ldap_group_member_format: 'uid=${username},ou=users,dc=mycompany,dc=net'
        ldap_group_subtree: false

เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚ LDAP เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป (DSA เด…เด•เตเด•เต—เดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต) + เดฑเต‹เดณเตเด•เดณเดพเดฏเดฟ เดกเตˆเดจเดพเดฎเดฟเด•เต เด†เดฏเดฟ เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดค เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ:

    nexus_ldap_realm: true
    ldap_connections:
      - ldap_name: 'LDAP config with DSA'
        ldap_protocol: 'ldaps'
        ldap_hostname: 'annuaire.mycompany.com'
        ldap_port: 636
        ldap_use_trust_store: false
        ldap_auth: 'simple'
        ldap_auth_username: 'cn=mynexus,ou=dsa,dc=mycompany,dc=net'
        ldap_auth_password: "{{ vault_ldap_dsa_password }}" # better keep passwords in an ansible vault
        ldap_search_base: 'dc=mycompany,dc=net'
        ldap_user_base_dn: 'ou=users'
        ldap_user_object_class: 'inetOrgPerson'
        ldap_user_id_attribute: 'uid'
        ldap_user_real_name_attribute: 'cn'
        ldap_user_email_attribute: 'mail'
        ldap_map_groups_as_roles: true
        ldap_map_groups_as_roles_type: 'dynamic'
        ldap_user_memberof_attribute: 'memberOf'

เดชเตเดฐเดฟเดตเดฟเดฒเต‡เดœเต

    nexus_privileges:
      - name: all-repos-read # used as key to update a privilege
        # type: <one of application, repository-admin, repository-content-selector, repository-view, script or wildcard>
        description: 'Read & Browse access to all repos'
        repository: '*'
        actions: # can be add, browse, create, delete, edit, read or  * (all)
          - read
          - browse
        # pattern: pattern
        # domain: domain
        # script_name: name

เดชเดŸเตเดŸเดฟเด• เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเด™เตเด™เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ. เดชเตเดฐเดฟเดตเดฟเดฒเต‡เดœเต เดคเดฐเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดเดคเตŠเด•เตเด•เต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดพเดฃเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเด‚ เดœเดฟเดฏเตเดเดฏเตเด‚ เดจเต‹เด•เตเด•เตเด•.

เดˆ เด˜เดŸเด•เด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

    _nexus_privilege_defaults:
      type: repository-view
      format: maven2
      actions:
        - read

เดฑเต‹เดณเตเด•เตพ (Nexus เด‰เดณเตเดณเดฟเตฝ เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚)

    nexus_roles:
      - id: Developpers # can map to a LDAP group id, also used as a key to update a role
        name: developers
        description: All developers
        privileges:
          - nx-search-read
          - all-repos-read
        roles: [] # references to other role names

เดชเดŸเตเดŸเดฟเด• เดตเต‡เดทเด™เตเด™เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ.

เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ

    nexus_local_users: []
      # - username: jenkins # used as key to update
      #   state: present # default value if ommited, use 'absent' to remove user
      #   first_name: Jenkins
      #   last_name: CI
      #   email: [email protected]
      #   password: "s3cr3t"
      #   roles:
      #     - developers # role ID

เดจเต†เด•เตเดธเดธเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• (LDAP เด‡เดคเดฐ) เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ/เด…เด•เตเด•เต—เดฃเตเดŸเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต.

Nexus-เตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• (LDAP เด‡เดคเดฐ) เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†/เด…เด•เตเด•เต—เดฃเตเดŸเตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต.

      nexus_ldap_users: []
      # - username: j.doe
      #   state: present
      #   roles:
      #     - "nx-admin"

เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต†/เดฑเต‹เดณเตเด•เดณเตเดŸเต† Ldap เดฎเดพเดชเตเดชเดฟเด‚เด—เต. เดธเด‚เดธเตเดฅเดพเดจเด‚ absent เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเต‹เดณเตเด•เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด‚.
Ldap เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟเดฒเตเดฒ. เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดฑเต‹เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดชเดฟเดถเด•เดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚.

เด‰เดณเตเดณเดŸเด•เตเด• เดธเต†เดฒเด•เตเดŸเตผเดฎเดพเตผ

  nexus_content_selectors:
  - name: docker-login
    description: Selector for docker login privilege
    search_expression: format=="docker" and path=~"/v2/"

เด‰เดณเตเดณเดŸเด•เตเด• เดธเต†เดฒเด•เตเดŸเดฑเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เด•เดพเดฃเตเด• เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

เด‰เดณเตเดณเดŸเด•เตเด• เดธเต†เดฒเด•เตเดŸเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเด‚ เดšเต‡เตผเด•เตเด•เตเด• type: repository-content-selector เดชเตเดฐเดธเด•เตเดคเดตเตเด‚contentSelector

- name: docker-login-privilege
  type: repository-content-selector
  contentSelector: docker-login
  description: 'Login to Docker registry'
  repository: '*'
  actions:
  - read
  - browse

เดฌเตเดณเต‹เดฌเตเดธเตเดฑเตเดฑเต‹เดฑเตเด•เดณเตเด‚ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเตเด‚

    nexus_delete_default_repos: false

เดจเต†เด•เตเดธเดธเต เด‡เตปเดธเตเดฑเตเดฑเต‹เตพ เดชเตเดฐเดพเดฐเด‚เดญ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•. เดˆ เด˜เดŸเตเดŸเด‚ เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚ (เดŽเดชเตเดชเต‹เตพ nexus_data_dir เดถเต‚เดจเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ).

Nexus-เดจเตเดณเตเดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด†เดฆเตเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เด˜เดŸเตเดŸเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚ (เดŽเดชเตเดชเต‹เตพ nexus_data_dir เดถเต‚เดจเตเดฏเด‚).

    nexus_delete_default_blobstore: false

nexus เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดชเตเดฐเดพเดฐเด‚เดญ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฌเตเดฒเต‹เดฌเตเดธเตเดฑเตเดฑเต‹เตผ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•. เดŽเด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเต‚ nexus_delete_default_repos: true เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตโ€Œเดค เดŽเดฒเตเดฒเดพ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพเด•เตเด•เตเด‚ (เดšเตเดตเดŸเต† เด•เดพเดฃเตเด•) เด’เดฐเต เดตเตเดฏเด•เตเดคเดคเดฏเตเดฃเตเดŸเต blob_store: custom. เดˆ เด˜เดŸเตเดŸเด‚ เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚ (เดŽเดชเตเดชเต‹เตพ nexus_data_dir เดถเต‚เดจเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ).

เดชเตเดฐเดพเดฐเด‚เดญ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดฌเตเดฒเต‹เดฌเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต (เดฌเตˆเดจเดฑเดฟ เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ) เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฃเต. เดฌเตเดฒเต‹เดฌเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต (เดฌเตˆเดจเดฑเดฟ เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ) เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเดพเตป, เด“เดซเต เดšเต†เดฏเตเดฏเตเด• nexus_delete_default_repos: true. เด†เดฆเตเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เด˜เดŸเตเดŸเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚ (เดŽเดชเตเดชเต‹เตพ nexus_data_dir เดถเต‚เดจเตเดฏเด‚).

    nexus_blobstores: []
    # example blobstore item :
    # - name: separate-storage
    #   type: file
    #   path: /mnt/custom/path
    # - name: s3-blobstore
    #   type: S3
    #   config:
    #     bucket: s3-blobstore
    #     accessKeyId: "{{ VAULT_ENCRYPTED_KEY_ID }}"
    #     secretAccessKey: "{{ VAULT_ENCRYPTED_ACCESS_KEY }}"

เดฌเตเดฒเต‹เดฌเตเดธเตเดฑเตเดฑเต‹เดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป. เดชเตเดฐเดพเดฐเด‚เดญ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต เดถเต‡เดทเด‚ เด’เดฐเต เดฌเตเดฒเต‹เดฌเตโ€Œเดธเตเดฑเตเดฑเต‹เตผ เดชเดพเดคเตเดคเตเด‚ เด’เดฐเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดฌเตเดฒเต‹เดฌเตโ€Œเดธเตเดฑเตเดฑเต‹เดฑเตเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ (เด‡เดตเดฟเดŸเต†เดฏเตเดณเตเดณ เดเดคเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเตŠเดตเดฟเดทเตป เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚).

S3-เตฝ เดฌเตเดฒเต‹เดฌเตโ€Œเดธเตเดฑเตเดฑเต‹เตผ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด’เดฐเต เดธเต—เด•เดฐเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟเดŸเตเดŸเดพเดฃเต เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดžเด™เตเด™เตพ เดŸเตเดฐเดพเดตเดฟเดธเดฟเตฝ เดจเดŸเดคเตเดคเตเดจเตเดจ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดญเดพเด—เดฎเดฒเตเดฒ. AWS-เตฝ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ S3-เตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดณเตเดณเต‚ เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•.

เดธเตƒเดทเตเดŸเดฟ เดฌเตเดฒเต‹เดฌเตเดธเตเดฑเตเดฑเต‹เดฑเตเด•เตพ. เดชเตเดฐเดพเดฐเด‚เดญ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต เดถเต‡เดทเด‚ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดชเดพเดคเตเดคเตเด‚ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ (เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด‡เดตเดฟเดŸเต†เดฏเตเดณเตเดณ เดเดคเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด‚ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚).

S3-เตฝ เดฌเตเดฒเต‹เดฌเต เดธเตโ€Œเดฑเตเดฑเต‹เดฑเต‡เดœเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚ เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต. AWS-เตฝ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ S3 เดธเด‚เดญเดฐเดฃเด‚ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด•เดฏเตเดณเตเดณเต‚ เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•.

    nexus_repos_maven_proxy:
      - name: central
        remote_url: 'https://repo1.maven.org/maven2/'
        layout_policy: permissive
        # maximum_component_age: -1
        # maximum_metadata_age: 1440
        # negative_cache_enabled: true
        # negative_cache_ttl: 1440
      - name: jboss
        remote_url: 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
        # maximum_component_age: -1
        # maximum_metadata_age: 1440
        # negative_cache_enabled: true
        # negative_cache_ttl: 1440
    # example with a login/password :
    # - name: secret-remote-repo
    #   remote_url: 'https://company.com/repo/secure/private/go/away'
    #   remote_username: 'username'
    #   remote_password: 'secret'
    #   # maximum_component_age: -1
    #   # maximum_metadata_age: 1440
    #   # negative_cache_enabled: true
    #   # negative_cache_ttl: 1440

เดฎเตเด•เดณเดฟเตฝ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เดฃเต เดชเตเดฐเต‡เดพเด•เตเดธเดฟ เดธเต†เดฐเตเดตเดฐเต เดฎเดพเดตเตป.

    nexus_repos_maven_hosted:
      - name: private-release
        version_policy: release
        write_policy: allow_once  # one of "allow", "allow_once" or "deny"

เดฎเดพเดตเตป เดนเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดค เดถเต‡เด–เดฐเด™เตเด™เตพ เด•เต‡เดพเตบเดซเดฟเด—เดฑเต‡เดทเตป. เดจเต†เด—เดฑเตเดฑเต€เดตเต เด•เดพเดทเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด“เดชเตเดทเดฃเตฝ เด†เดฃเต เด•เต‚เดŸเดพเดคเต† เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏเดพเตฝ เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเด•เตเด‚.

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดนเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดค เดถเต‡เด–เดฐเด™เตเด™เตพ เดฎเดพเดตเตป. เดจเต†เด—เดฑเตเดฑเต€เดตเต เด•เดพเดทเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป (-1) เด“เดชเตเดทเดฃเตฝ เด†เดฃเต, เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

    nexus_repos_maven_group:
      - name: public
        member_repos:
          - central
          - jboss

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ เดฎเดพเดตเตป.

เดฎเต‚เดจเตเดจเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดคเดฐเด™เตเด™เดณเตเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

    _nexus_repos_maven_defaults:
      blob_store: default # Note : cannot be updated once the repo has been created
      strict_content_validation: true
      version_policy: release # release, snapshot or mixed
      layout_policy: strict # strict or permissive
      write_policy: allow_once # one of "allow", "allow_once" or "deny"
      maximum_component_age: -1  # Nexus gui default. For proxies only
      maximum_metadata_age: 1440  # Nexus gui default. For proxies only
      negative_cache_enabled: true # Nexus gui default. For proxies only
      negative_cache_ttl: 1440 # Nexus gui default. For proxies only

เดกเต‹เด•เตเด•เตผ, เดชเตˆเดชเดฟ, เดฑเต‹, เดฑเต‚เดฌเดฟเดœเต†เด‚เดธเต, เดฌเต‹เดตเตผ, เดŽเตปเดชเดฟเดŽเด‚, เดœเดฟเดฑเตเดฑเต-เดŽเตฝเดŽเดซเตเดŽเดธเต, เดฏเด‚ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดคเดฐเด™เตเด™เตพ:
เด•เดพเดฃเตเด• defaults/main.yml เดˆ เด“เดชเตเดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ:

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS, yum เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดŽเดจเตเดจเดฟเดต เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:
เด•เดพเดฃเตเด• defaults/main.yml เดˆ เด“เดชเตเดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ:

      nexus_config_pypi: false
      nexus_config_docker: false
      nexus_config_raw: false
      nexus_config_rubygems: false
      nexus_config_bower: false
      nexus_config_npm: false
      nexus_config_gitlfs: false
      nexus_config_yum: false

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดพเดตเตป เด’เดดเดฟเด•เต†เดฏเตเดณเตเดณ เดฎเดฑเตเดฑเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดถเต‡เด–เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ เดšเดฟเดฒ เดธเตเดฐเด•เตเดทเดพ เดธเตเด•เต‹เดชเตเดชเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต†เดจเตเดจ เด•เดพเดฐเตเดฏเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เด‡เดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดคเต†เดฑเตเดฑเดพเดฃเต

nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false  # required for docker anonymous access

เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดฏเต‚เดธเตผ เดฑเดฟเดฏเตฝเดฎเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚

nexus_rut_auth_realm: true

เดจเดฟเตผเดตเดšเดฟเดšเตเดšเต เดคเดฒเด•เตเด•เต†เดŸเตเดŸเต เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเด‚

nexus_rut_auth_header: "CUSTOM_HEADER"

เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดค เดœเต‹เดฒเดฟเด•เตพ

    nexus_scheduled_tasks: []
    #  #  Example task to compact blobstore :
    #  - name: compact-docker-blobstore
    #    cron: '0 0 22 * * ?'
    #    typeId: blobstore.compact
    #    task_alert_email: [email protected]  # optional
    #    taskProperties:
    #      blobstoreName: {{ nexus_blob_names.docker.blob }} # all task attributes are stored as strings by nexus internally
    #  #  Example task to purge maven snapshots
    #  - name: Purge-maven-snapshots
    #    cron: '0 50 23 * * ?'
    #    typeId: repository.maven.remove-snapshots
    #    task_alert_email: [email protected]  # optional
    #    taskProperties:
    #      repositoryName: "*"  # * for all repos. Change to a repository name if you only want a specific one
    #      minimumRetained: "2"
    #      snapshotRetentionDays: "2"
    #      gracePeriodInDays: "2"
    #    booleanTaskProperties:
    #      removeIfReleased: true
    #  #  Example task to purge unused docker manifest and images
    #  - name: Purge unused docker manifests and images
    #    cron: '0 55 23 * * ?'
    #    typeId: "repository.docker.gc"
    #    task_alert_email: [email protected]  # optional
    #    taskProperties:
    #      repositoryName: "*"  # * for all repos. Change to a repository name if you only want a specific one
    #  #  Example task to purge incomplete docker uploads
    #  - name: Purge incomplete docker uploads
    #    cron: '0 0 0 * * ?'
    #    typeId: "repository.docker.upload-purge"
    #    task_alert_email: [email protected]  # optional
    #    taskProperties:
    #      age: "24"

เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดค เดœเต‹เดฒเดฟเด•เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ. typeId เด•เต‚เดŸเดพเดคเต† เดšเตเดฎเดคเดฒ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸเดตเตเด‚taskProperties/booleanTaskProperties เด’เดจเตเดจเตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŠเดนเดฟเด•เตเด•เดพเด‚:

  • เดœเดพเดต เดคเดฐเด‚ เดถเตเดฐเต‡เดฃเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต org.sonatype.nexus.scheduling.TaskDescriptorSupport
  • เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฌเตเดฐเต—เดธเดฑเดฟเตฝ HTML เดŸเดพเดธเตโ€Œเด•เต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตฝ เดซเต‹เด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต
  • เด’เดฐเต เดŸเดพเดธเตโ€Œเด•เต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฌเตเดฐเต—เดธเดฑเดฟเตฝ AJAX เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด•เดพเดฃเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต.

เดŸเดพเดธเตเด•เต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เด…เดตเดฏเตเดŸเต† เดคเดฐเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดถเดฐเดฟเดฏเดพเดฏ yaml เดฌเตเดฒเต‹เด•เตเด•เดฟเตฝ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เดฃเด‚:

  • taskProperties เดŽเดฒเตเดฒเดพ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพเด•เตเด•เตเด‚ (เด…เดคเดพเดฏเดคเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดชเต‡เดฐเตเด•เตพ, เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดจเดพเดฎเด™เตเด™เตพ, เดธเดฎเดฏ เด•เดพเดฒเดฏเดณเดตเตเด•เตพ...).
  • booleanTaskProperties เดŽเดฒเตเดฒเดพ เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพเด•เตเด•เตเด‚ (เด…เดคเดพเดฏเดคเต, เดจเต†เด•เตโ€Œเดธเดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตฝ เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเตเดฑเต† เดœเดฟเดฏเตเดเดฏเดฟเดฒเต† เดšเต†เด•เตเด•เตโ€Œเดฌเต‹เด•เตโ€Œเดธเตเด•เตพ).

เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ

      nexus_backup_configure: false
      nexus_backup_cron: '0 0 21 * * ?'  # See cron expressions definition in nexus create task gui
      nexus_backup_dir: '/var/nexus-backup'
      nexus_restore_log: '{{ nexus_backup_dir }}/nexus-restore.log'
      nexus_backup_rotate: false
      nexus_backup_rotate_first: false
      nexus_backup_keep_rotations: 4  # Keep 4 backup rotation by default (current + last 3)

เดจเดฟเด™เตเด™เตพ เดฎเดพเดฑเตเดจเตเดจเดคเต เดตเดฐเต† เดฌเดพเด•เตเด•เดชเตเดชเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเดฟเดฒเตเดฒ nexus_backup_configure ะฒ true.
เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตโ€Œเดค เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŸเดพเดธเตโ€Œเด•เต Nexus-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚
เตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เด‡เดŸเดตเต‡เดณเดฏเดฟเตฝ nexus_backup_cron (เดกเดฟเดซเต‹เตพเดŸเตเดŸเต 21:00 เดŽเดฒเตเดฒเดพ เดฆเดฟเดตเดธเดตเตเด‚).
เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพเด•เตเด•เต [เดˆ เดŸเดพเดธเตเด•เตเด•เดฟเดจเตเดณเตเดณ เด—เตเดฐเต‚เดตเดฟ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต](เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ/backup.groovy.j2) เด•เดพเดฃเตเด•.
เดˆ เดทเต†เดกเตเดฏเต‚เตพ เดšเต†เดฏเตเดค เดŸเดพเดธเตโ€Œเด•เต เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฃเต nexus_scheduled_tasksเดเดคเต เดจเดฟเด™เตเด™เตพ
เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฒเต‡เดฌเตเด•เตเด•เดฟเตฝ เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเด•.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เดคเดฟเดฐเดฟเด•เตเด•เดพเตป/เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• nexus_backup_rotate: true เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพ เดธเต‡เดตเต เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดฌเดพเด•เตเด•เดชเตเดชเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด• nexus_backup_keep_rotations (เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ 4).

เดฑเตŠเดŸเตเดŸเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฌเดพเด•เตเด•เดชเตเดชเต เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เด…เดงเดฟเด• เดกเดฟเดธเตเด•เต เดธเตเดฅเดฒเด‚ เดฒเดพเดญเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ,
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเด‚ nexus_backup_rotate_first: true. เด‡เดคเต เดฌเดพเด•เตเด•เดชเตเดชเดฟเดจเต เดฎเตเดฎเตเดชเต เดชเตเดฐเต€-เดฑเตŠเดŸเตเดŸเต‡เดทเตป/เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตฝ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด‚. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เด’เดฐเต เดฌเดพเด•เตเด•เดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚ เดฑเตŠเดŸเตเดŸเต‡เดทเตป เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดชเดดเดฏ เดฌเดพเด•เตเด•เดชเตเดชเตเด•เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
เดจเดฟเดฒเดตเดฟเดฒเต† เดฌเดพเด•เตเด•เดชเตเดชเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดชเตเดชเต†เดŸเตเด‚.

เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตฝ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเด‚

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฒเต‡เดฌเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 2017-12-17-21-00-00 เดกเดฟเดธเด‚เดฌเตผ 17, 2017 เดจเต 21:00 เดจเต

เดจเต†เด•เตเดธเดธเต เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต: เด‡เดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดพเดฑเตเดฑ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด‚. เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เดจเต‡เดฐเดคเตเดคเต† เด’เดฐเต เดฌเดพเด•เตเด•เดชเตเดชเต เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเดคเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•

เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• nexus_purgeเดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดฆเตเดฏเด‚ เดฎเตเดคเตฝ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดŽเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด‚ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดคเต nexus เด‡เตปเดธเตเดฑเตเดฑเตปเดธเต เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•.

ansible-playbook -i your/inventory.ini your_nexus_playbook.yml -e nexus_purge=true

เด†เดฆเตเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเต เดถเต‡เดทเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดฎเดพเดฑเตเดฑเตเด•

    nexus_default_admin_password: 'admin123'

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฒเต‡เดฌเตเด•เตเด•เดฟเตฝ เด‡เดคเต เดฎเดพเดฑเตเดฑเดพเตป เดชเดพเดŸเดฟเดฒเตเดฒ. เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฆเตเดฏเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ Nexus เด…เดกเตโ€Œเดฎเดฟเตป เดชเดพเดธเตโ€Œเดตเต‡เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‹เดชเตเดชเตเดฒเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดกเตเดฎเดฟเตป เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต nexus_admin_password.

เด†เดฆเตเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเต เดถเต‡เดทเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดฎเดพเดฑเตเดฑเดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดชเดดเดฏ เดชเดพเดธเตโ€Œเดตเต‡เดกเดฟเดฒเต‡เด•เตเด•เต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดฑเดพเด‚. เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ nexus_admin_password เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฒเต‡เดฌเตเด•เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

ansible-playbook -i your/inventory.ini your_playbook.yml -e nexus_default_admin_password=oldPassword

Nexus Sonatype-เดฒเต† เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดšเดพเดจเตฝ: https://t.me/ru_nexus_sonatype

เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดธเตˆเตป เด‡เตปเดฆเดฏเดตเดพเดฏเดฟ.

เดจเดฟเด™เตเด™เตพ เดเดคเต เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต?

  • Sonatype Nexus เดธเต—เดœเดจเตเดฏเดฎเดพเดฃเต

  • Sonatype Nexus เดชเดฃเดฎเดŸเดšเตเดšเต

  • เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€ŒเดŸเดฑเดฟ เดธเต—เดœเดจเตเดฏเดฎเดพเดฃเต

  • เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€ŒเดŸเดฑเดฟ เดชเดฃเด‚ เดจเตฝเด•เดฟ

  • เดนเดพเตผเดฌเตผ

  • เดชเตพเดชเตเดชเต

9 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 3 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•