เจ•เฉ‹เจก เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Nexus Sonatype เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ

Sonatype Nexus เจ‡เฉฑเจ• เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจนเฉˆ เจœเจฟเจธ เจฐเจพเจนเฉ€เจ‚ เจกเจฟเจตเฉˆเจฒเจชเจฐ Java (Maven) เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚, Docker, Python, Ruby, NPM, Bower เจšเจฟเฉฑเจคเจฐ, RPM เจชเฉˆเจ•เฉ‡เจœ, gitlfs, Apt, Go, Nuget, เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจจเฉ‚เฉฐ เจชเฉเจฐเฉŒเจ•เจธเฉ€, เจธเจŸเฉ‹เจฐ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจคเฉเจนเจพเจจเฉ‚เฉฐ Sonatype Nexus เจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?

  • เจจเจฟเฉฑเจœเฉ€ เจ•เจฒเจพเจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ;
  • เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจคเฉ‹เจ‚ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ•เจฒเจพเจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจš เจ•เจฐเจจ เจฒเจˆ;

เจฌเฉเจจเจฟเจ†เจฆเฉ€ Sonatype Nexus เจชเฉˆเจ•เฉ‡เจœ เจตเจฟเฉฑเจš เจธเจฎเจฐเจฅเจฟเจค เจ•เจฒเจพเจคเจฎเจ• เจšเฉ€เจœเจผเจพเจ‚:

  • เจœเจพเจตเจพ, เจฎเจพเจตเฉ‡เจจ (เจœเจพเจฐ)
  • เจกเฉŒเจ•เจฐ
  • เจชเจพเจˆเจฅเจจ (เจชเจพเจˆเจช)
  • เจฐเฉ‚เจฌเฉ€ (เจฐเจคเจจ)
  • เจเจจเจชเฉ€เจเจฎ
  • เจฌเฉ‹เจตเจพเจฐ
  • เจฏเจฎ (rpm)
  • gitlfs
  • เจฐเจพเจ…
  • Apt (deb)
  • Go
  • เจจเฉ‚เจŸ

เจ•เจฎเจฟเจŠเจจเจฟเจŸเฉ€ เจธเจฎเจฐเจฅเจฟเจค เจ•เจฒเจพเจคเจฎเจ• เจšเฉ€เจœเจผเจพเจ‚:

  • เจ•เฉฐเจชเฉ‹เจœเจผเจฐ
  • Conan
  • เจธเฉ€ เจชเฉ€ เจเจจ
  • ELPA
  • เจนเฉ‡เจฒเจฎ
  • P2
  • R

Sonatype Nexus เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ https://github.com/ansible-ThoTeam/nexus3-oss

เจฒเฉ‹เฉœ

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

Maven (java), Docker, Python, Ruby, NPM, Bower, RPM เจ…เจคเฉ‡ gitlfs เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ LDAP เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ—เจ เจœเฉ‹เฉœ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‰เจฆเจพเจนเจฐเจจ เจœเจตเจพเจฌเจฆเฉ‡เจน-เจชเจฒเฉ‡เจฌเฉเฉฑเจ•เฅค

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

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

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

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

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

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

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

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

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

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

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

เจธเจ•เจฐเฉ€เจจเจธเจผเจพเจŸ:

เจ•เฉ‹เจก เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Nexus Sonatype เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ

เจ•เฉ‹เจก เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Nexus Sonatype เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจเจพ

เจชเจฐเจฟเจตเจฐเจคเจจเจธเจผเฉ€เจฒ เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚

เจฐเฉ‹เจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ

เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒเจพเจ‚ เจตเจพเจฒเฉ‡ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ (เจตเฉ‡เจ–เฉ‹ default/main.yml):

เจ†เจฎ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ

    nexus_version: ''
    nexus_timezone: 'UTC'

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจญเฉ‚เจฎเจฟเจ•เจพ Nexus เจฆเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจ‰เจชเจฒเจฌเจง เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‡เจ—เฉ€เฅค เจคเฉเจธเฉ€เจ‚ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ nexus_version. 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจธเฉฐเจธเจ•เจฐเจฃ เจตเฉ‡เจ–เฉ‹ https://www.sonatype.com/download-oss-sonatype.

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจญเฉ‚เจฎเจฟเจ•เจพ เจคเฉเจนเจพเจกเฉ€ Nexus เจธเจฅเจพเจชเจจเจพ เจจเฉ‚เฉฐ เจ…เจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‡เจ—เฉ€เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจจเจตเฉ€เจจเจคเจฎ เจจเจพเจฒเฉ‹เจ‚ เจจเฉˆเจ•เจธเจธ เจฆเจพ เจชเฉเจฐเจพเจฃเจพ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฐเจค เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‰เจน เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ เจœเฉ‹ เจธเจฅเจพเจชเจฟเจค เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจจเจนเฉ€เจ‚ เจนเจจ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, 3.8.0 เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเฉˆเจ•เจธเจธ เจฒเจˆ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— yum เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจ‰เจชเจฒเจฌเจง เจนเจจ, git lfs repo 3.3.0 เจ†เจฆเจฟ เจคเฉ‹เจ‚ เจตเฉฑเจง เจ—เจ เจœเฉ‹เฉœ เจฒเจˆ)

nexus timezone เจœเจพเจตเจพ เจŸเจพเจˆเจฎ เจœเจผเฉ‹เจจ เจฆเจพ เจจเจพเจฎ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ nexus_scheduled เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉเจฐเฉ‹เจจ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจฆเฉ‡ เจธเฉเจฎเฉ‡เจฒ เจตเจฟเฉฑเจš เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค

Nexus เจชเฉ‹เจฐเจŸ เจ…เจคเฉ‡ เจธเฉฐเจฆเจฐเจญ เจฎเจพเจฐเจ—

    nexus_default_port: 8081
    nexus_default_context_path: '/'

Java เจ•เจจเฉˆเจ•เจธเจผเจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเจพ เจชเฉ‹เจฐเจŸ เจ…เจคเฉ‡ เจธเฉฐเจฆเจฐเจญ เจฎเจพเจฐเจ—เฅค nexus_default_context_path เจœเจฆเฉ‹เจ‚ เจ‡เจน เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจซเจพเจฐเจตเจฐเจก เจธเจฒเฉˆเจธเจผ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ: nexus_default_context_path: '/nexus/'.

Nexus OS เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจคเฉ‡ เจธเจฎเฉ‚เจน

    nexus_os_group: 'nexus'
    nexus_os_user: 'nexus'

Nexus เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจฎเจพเจฒเจ•เฉ€ เจ…เจคเฉ‡ เจธเฉ‡เจตเจพ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเฉ‡ เจ—เจ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจคเฉ‡ เจธเจฎเฉ‚เจน เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจ—เฉเฉฐเจฎ เจนเฉˆ เจคเจพเจ‚ เจญเฉ‚เจฎเจฟเจ•เจพ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

    nexus_os_user_home_dir: '/home/nexus'

Nexus เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ เจชเฉ‚เจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจนเฉ‹เจฎ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเจ“

Nexus เจ‰เจฆเจพเจนเจฐเจจ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚

    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 เจฒเจˆ เจชเฉ‚เจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจนเจจเฅค เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจ‡เจนเจจเจพเจ‚ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจจเจพ เจฌเจฆเจฒเฉ‹ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจชเฉœเฉเจนเจฟเจ† เจ—เจ เจœเฉ‹เฉœ เจธเจฟเจธเจŸเจฎ เจฒเฉ‹เฉœ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจญเจพเจ— เจ…เจคเฉ‡ เจ‡เจน เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเฉ‡ เจ•เจฟ เจ‰เจน เจ•เฉ€ เจ•เจฐ เจฐเจนเฉ‡ เจนเจจเฅค

เจฆเฉ‚เจœเฉ€ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เฉฑเจฅเฉ‡ เจ‰เจชเจฐเฉ‹เจ•เจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฆเจพ เจ‡เฉฑเจ• เจ…เฉฐเจธเจผ เจนเฉˆ:

เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจตเจฟเฉฑเจš JVM เจนเฉ€เจช เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจชเจฐเฉ‡ เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจฆเจพ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‰เจฒเจŸ เจชเฉเจฐเจญเจพเจต เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเจฟเจธเจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจฌเฉ‡เจฒเฉ‹เฉœเจพ เจ•เฉฐเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจชเฉเจฐเจธเจผเจพเจธเจ• เจชเจพเจธเจตเจฐเจก

    nexus_admin_password: 'changeme'

เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจฒเจˆ "เจเจกเจฎเจฟเจจ" เจ–เจพเจคเจพ เจชเจพเจธเจตเจฐเจกเฅค เจ‡เจน เจธเจฟเจฐเจซเจผ เจชเจนเจฟเจฒเฉ€ เจกเจฟเจซเจพเจฒเจŸ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ [เจชเจนเจฟเจฒเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจเจกเจฎเจฟเจจ เจชเจพเจธเจตเจฐเจก เจฌเจฆเจฒเฉ‹](# change-admin-password-after-first-install) เจฆเฉ‡เจ–เฉ‹ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจญเฉ‚เจฎเจฟเจ•เจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค

เจ‡เจน เจœเจผเฉ‹เจฐเจฆเจพเจฐ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจชเจฒเฉ‡เจฌเฉเฉฑเจ• เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ‡ เจชเจพเจธเจตเจฐเจก เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจจเจพ เจ•เจฐเฉ‹, เจชเจฐ [เจเจจเจธเฉ€เจฌเจฒ-เจตเจพเจฒเจŸ เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ] เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ (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

เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹ SSL เจฐเจฟเจตเจฐเจธ เจชเฉเจฐเฉŒเจ•เจธเฉ€.
เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ httpd เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจจเฉ‹เจŸ: เจ•เจฆเฉ‹เจ‚ เจฒเจˆ httpd_setup_enable เจฎเฉเฉฑเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹true, เจ—เจ เจœเฉ‹เฉœ เจธเฉฐเจชเจฐเจ• 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

เจธเจงเจพเจฐเจจ เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจฃ (DSA เจ–เจพเจคเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ) + เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจตเจœเฉ‹เจ‚ เจฎเฉˆเจช เจ•เฉ€เจคเฉ‡ เจธเจฎเฉ‚เจนเจพเจ‚ เจฒเจˆ LDAP เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ:

    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

เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจธเฉˆเจŸเจฟเฉฐเจ— เจฒเจˆ. เจตเจฟเจธเจผเฉ‡เจธเจผ เจ…เจงเจฟเจ•เจพเจฐ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจ•เจฟเจนเฉœเฉ‡ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจ…เจคเฉ‡ GUI เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹เฅค

เจ‡เจนเจจเจพเจ‚ เจคเฉฑเจคเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจฎเฉ‚เจฒ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

    _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_delete_default_repos: true เจ…เจคเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ (เจนเฉ‡เจ เจพเจ‚ เจฆเฉ‡เจ–เฉ‹) เจตเจฟเฉฑเจš เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ blob_store: custom. เจ‡เจน เจ•เจฆเจฎ เจธเจฟเจฐเจซ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจœเจฆเฉ‹เจ‚ nexus_data_dir เจ–เจพเจฒเฉ€ เจชเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ)เฅค

เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจคเฉ‹เจ‚ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเจฒเฉŒเจฌ เจธเจŸเฉ‹เจฐเฉ‡เจœ (เจฌเจพเจˆเจจเจฐเฉ€ เจ•เจฒเจพเจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚) เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃเจพ เจ…เจธเจฎเจฐเฉฑเจฅ เจนเฉˆเฅค เจฌเจฒเฉŒเจฌ เจธเจŸเฉ‹เจฐเฉ‡เจœ (เจฌเจพเจˆเจจเจฐเฉ€ เจ•เจฒเจพเจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚) เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจฒเจˆ, เจฌเฉฐเจฆ เจ•เจฐเฉ‹ nexus_delete_default_repos: true. เจ‡เจน เจ•เจฆเจฎ เจธเจฟเจฐเจซ เจชเจนเจฟเจฒเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจœเจฆเฉ‹เจ‚ nexus_data_dir เจ–เจพเจฒเฉ€)เฅค

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

เจฌเจฒเฉŒเจฌเจธเจŸเฉ‹เจฐเจธ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ. เจ‡เฉฑเจ• เจฌเจฒเฉŒเจฌเจธเจŸเฉ‹เจฐ เจฎเจพเจฐเจ— เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฌเจฒเฉŒเจฌเจธเจŸเฉ‹เจฐ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจฐเจšเจจเจพ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เฉฑเจชเจกเฉ‡เจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจ‡เฉฑเจฅเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ…เฉฑเจชเจกเฉ‡เจŸ เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจชเฉเจฐเฉ‹เจตเจฟเจœเจผเจจเจฟเฉฐเจ— 'เจคเฉ‡ เจ…เจฃเจกเจฟเฉฑเจ  เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ)เฅค

S3 'เจคเฉ‡ เจฌเจฒเฉŒเจฌเจธเจŸเฉ‹เจฐ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจธเจนเฉ‚เจฒเจค เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจธเจตเฉˆเจšเจฒเจฟเจค เจŸเฉˆเจธเจŸเจพเจ‚ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจŸเฉเจฐเฉˆเจตเจฟเจธ 'เจคเฉ‡ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ S3 'เจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฆเฉ€ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจธเจฟเจฐเจซเจผ AWS 'เจคเฉ‡ เจคเฉˆเจจเจพเจค เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจฐเจšเจจเจพ เจฌเจฒเฉŒเจฌเจธเจŸเฉ‹เจฐเจธ. เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจฎเจพเจฐเจ— เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจฐเจšเจจเจพ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เฉฑเจชเจกเฉ‡เจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจ‡เฉฑเจฅเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ…เฉฑเจชเจกเฉ‡เจŸ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจธเจฅเจพเจชเจค เจ•เจฐเจจ 'เจคเฉ‡ เจ…เจฃเจกเจฟเฉฑเจ  เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ)เฅค

S3 'เจคเฉ‡ เจฌเจฒเฉŒเจฌ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจเจพ เจธเจนเฉ‚เจฒเจค เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ S3 เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ€ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจธเจฟเจฐเจซเจผ AWS 'เจคเฉ‡ เจคเฉˆเจจเจพเจค เจฎเฉŒเจ•เจฟเจ†เจ‚ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

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

เจ‰เฉฑเจชเจฐ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจธเฉฐเจฐเจšเจจเจพ เจนเฉˆ เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจธเจฐเจตเจฐ เจฎเจพเจตเฉ‡เจจ.

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

เจฎเฉˆเจตเจจ เจนเฉ‹เจธเจŸเจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจธเฉฐเจฐเจšเจจเจพ. เจจเจ•เจพเจฐเจพเจคเจฎเจ• เจ•เฉˆเจธเจผ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเจ•เจฒเจชเจฟเจ• เจนเฉˆ เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ›เฉฑเจกเจฟเจ† เจ—เจฟเจ† เจคเจพเจ‚ เจ‰เจชเจฐเฉ‹เจ•เจค เจฎเฉเฉฑเจฒเจพเจ‚ เจฒเจˆ เจกเจฟเจซเฉŒเจฒเจŸ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจ•เฉŒเจจเจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจนเฉ‹เจธเจŸเจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฎเจพเจตเฉ‡เจจเฅค เจจเจ•เจพเจฐเจพเจคเจฎเจ• เจ•เฉˆเจธเจผ เจธเฉฐเจฐเจšเจจเจพ (-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

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS เจ…เจคเฉ‡ yum เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจ•เจฟเจธเจฎ:
เจตเฉ‡เจ–เฉ‹, defaults/main.yml เจ‡เจนเจจเจพเจ‚ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฒเจˆ:

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS เจ…เจคเฉ‡ yum เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจฏเฉ‹เจ— เจนเจจ:
เจตเฉ‡เจ–เฉ‹ defaults/main.yml เจ‡เจนเจจเจพเจ‚ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฒเจˆ:

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

เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจ•เฉ‹เจชเจพเจ‚ เจจเฉ‚เฉฐ เจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ maven เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจนเฉ‹เจฐ เจ•เจฟเจธเจฎ เจฆเฉ€เจ†เจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ—เจฒเจค เจนเฉˆ

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

เจฐเจฟเจฎเฉ‹เจŸ เจฏเฉ‚เจœเจผเจฐ เจฐเฉ€เจ…เจฒเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจตเฉ€ เจฏเฉ‹เจ— เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ

nexus_rut_auth_realm: true

เจ…เจคเฉ‡ เจธเจฟเจฐเจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจ•เฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ

nexus_rut_auth_header: "CUSTOM_HEADER"

เจคเจนเจฟ เจ•เฉ€เจคเฉ‡ เจ•เจพเจฐเจœ

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

เจคเจนเจฟ เจ•เฉ€เจคเฉ‡ เจ•เจพเจฐเจœ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฒเจˆ. typeId เจ…เจคเฉ‡ เจ–เจพเจธ เจ•เฉฐเจฎtaskProperties/booleanTaskProperties เจคเฉเจธเฉ€เจ‚ เจœเจพเจ‚ เจคเจพเจ‚ เจ…เฉฐเจฆเจพเจœเจผเจพ เจฒเจ—เจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

  • Java เจ•เจฟเจธเจฎ เจฒเฉœเฉ€ เจคเฉ‹เจ‚ org.sonatype.nexus.scheduling.TaskDescriptorSupport
  • เจคเฉเจนเจพเจกเฉ‡ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš HTML เจŸเจพเจธเจ• เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจซเจพเจฐเจฎ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ
  • เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš AJAX เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ‡เจ–เจฃ เจคเฉ‹เจ‚ เจœเจฆเฉ‹เจ‚ เจนเฉฑเจฅเฉ€เจ‚ เจ•เฉ‹เจˆ เจ•เฉฐเจฎ เจธเฉˆเจŸ เจ…เจช เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจŸเจพเจธเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจธเจนเฉ€ yaml เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš เจ˜เฉ‹เจธเจผเจฟเจค เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃเฉ€เจ†เจ‚ เจšเจพเจนเฉ€เจฆเฉ€เจ†เจ‚ เจนเจจ:

  • taskProperties เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจคเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฒเจˆ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเจพเจฎ, เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเจพเจฎ, เจธเจฎเจพเจ‚ เจฎเจฟเจ†เจฆ...)เฅค
  • booleanTaskProperties เจธเจพเจฐเฉ€เจ†เจ‚ เจฒเจพเจœเจผเฉ€เจ•เจฒ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฒเจˆ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ—เจ เจœเฉ‹เฉœ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ GUI เจตเจฟเฉฑเจš เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจšเฉˆเจ•เจฌเจพเจ•เจธ)เฅค

เจฌเฉˆเจ•เจ…เฉฑเจช

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

เจฌเฉˆเจ•เจ…เฉฑเจช เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจคเฉเจธเฉ€เจ‚ เจธเจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ nexus_backup_configure ะฒ true.
เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ…เจจเฉเจธเฉ‚เจšเจฟเจค เจธเจ•เฉเจฐเจฟเจชเจŸ เจŸเจพเจธเจ• เจจเฉ‚เฉฐ Nexus 'เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ
เจตเจฟเฉฑเจš เจจเจฟเจฐเจงเจพเจฐเจค เจ…เฉฐเจคเจฐเจพเจฒ 'เจคเฉ‡ nexus_backup_cron (เจกเจฟเจซเฉŒเจฒเจŸ 21:00 เจนเจฐ เจฐเฉ‹เจœเจผ)เฅค
เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฒเจˆ [เจ‡เจธ เจ•เฉฐเจฎ เจฒเจˆ groovy เจŸเฉˆเจฎเจชเจฒเฉ‡เจŸ](templates/backup.groovy.j2) เจฆเฉ‡เจ–เฉ‹เฅค
เจ‡เจน เจ…เจจเฉเจธเฉ‚เจšเจฟเจค เจ•เฉฐเจฎ เจฆเฉ‚เจœเจฟเจ†เจ‚ เจคเฉ‹เจ‚ เจธเฉเจคเฉฐเจคเจฐ เจนเฉˆ nexus_scheduled_tasksเจœเฉ‹ เจคเฉเจธเฉ€เจ‚
เจ†เจชเจฃเฉ€ เจชเจฒเฉ‡เจฌเฉเฉฑเจ• เจตเจฟเฉฑเจš เจ˜เฉ‹เจธเจผเจฃเจพ เจ•เจฐเฉ‹เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฌเฉˆเจ•เจ…เฉฑเจช เจจเฉ‚เฉฐ เจ˜เฉเฉฐเจฎเจพเจ‰เจฃเจพ/เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ nexus_backup_rotate: true เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฌเฉˆเจ•เจ…เฉฑเจชเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‹ เจœเจฟเจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ nexus_backup_keep_rotations (เจฎเฉ‚เจฒ 4)

เจฐเฉ‹เจŸเฉ‡เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฌเฉˆเจ•เจ…เฉฑเจช เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉŒเจฐเจพเจจ เจตเจพเจงเฉ‚ เจกเจฟเจธเจ• เจธเจชเฉ‡เจธ เจฌเจšเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹,
เจคเฉเจธเฉ€เจ‚ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ nexus_backup_rotate_first: true. เจ‡เจน เจฌเฉˆเจ•เจ…เฉฑเจช เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจชเฉเจฐเฉ€-เจฐเฉ‹เจŸเฉ‡เจธเจผเจจ/เจฎเจฟเจŸเจพเจ‰เจฃ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเฉ‡เจ—เจพเฅค เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจฌเฉˆเจ•เจ…เฉฑเจช เจฌเจฃเจพเจ เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฐเฉ‹เจŸเฉ‡เจธเจผเจจ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจงเจฟเจ†เจจ เจฆเจฟเจ“ เจ•เจฟ เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจฃเฉ‡ เจฌเฉˆเจ•เจ…เฉฑเจช
เจฎเฉŒเจœเฉ‚เจฆเจพ เจฌเฉˆเจ•เจ…เฉฑเจช เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฎเจฟเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฐเจฟเจ•เจตเจฐเฉ€ เจตเจฟเจงเฉ€

เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจจเจพเจฒ เจชเจฒเฉ‡เจฌเฉเฉฑเจ• เจšเจฒเจพเจ“ -e nexus_restore_point=<YYYY-MM-dd-HH-mm-ss>
(เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, 2017-12-17-21-00-00 เจฆเจธเฉฐเจฌเจฐ 17, 2017 เจฒเจˆ 21:00 เจตเจœเฉ‡

เจ—เจ เจœเฉ‹เฉœ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‡เจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจšเฉ‡เจคเจพเจตเจจเฉ€: เจ‡เจน เจคเฉเจนเจพเจกเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฎเจฟเจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฌเฉˆเจ•เจ…เฉฑเจช เจฒเฉˆเจฃเจพ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ“

เจ‡เฉฑเจ• เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ nexus_purgeเจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจ•เฉเจฐเฉˆเจš เจคเฉ‹เจ‚ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจนเจŸเจพ เจ•เฉ‡ เจ—เจ เจœเฉ‹เฉœ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹เฅค

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

เจชเจนเจฟเจฒเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉเจฐเจฌเฉฐเจงเจ• เจชเจพเจธเจตเจฐเจก เจฌเจฆเจฒเฉ‹

    nexus_default_admin_password: 'admin123'

เจ‡เจธ เจจเฉ‚เฉฐ เจคเฉเจนเจพเจกเฉ€ เจชเจฒเฉ‡เจฌเฉเฉฑเจ• เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ. เจ‡เจน เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจกเจฟเจซเฉŒเจฒเจŸ Nexus เจเจกเจฎเจฟเจจ เจชเจพเจธเจตเจฐเจก เจจเจพเจฒ เจญเจฐเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจเจกเจฎเจฟเจจ เจชเจพเจธเจตเจฐเจก เจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ nexus_admin_password.

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉเจฐเจฌเฉฐเจงเจ• เจชเจพเจธเจตเจฐเจก เจฌเจฆเจฒเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจฐเจœเจผเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจฃเฉ‡ เจชเจพเจธเจตเจฐเจก เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจคเจฌเจฆเฉ€เจฒเฉ€ เจฆเฉ‡ เจฌเจพเจ…เจฆ nexus_admin_password เจ†เจชเจฃเฉ€ เจชเจฒเฉ‡เจฌเฉเฉฑเจ• เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

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

Nexus Sonatype 'เจคเฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจจเจฒ: https://t.me/ru_nexus_sonatype

เจธเจฟเจฐเจซเจผ เจฐเจœเจฟเจธเจŸเจฐเจก เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉ€ เจธเจฐเจตเฉ‡เจ–เจฃ เจตเจฟเฉฑเจš เจนเจฟเฉฑเจธเจพ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจธเจพเจˆเจจ - เจ‡เจจ, เจคเฉเจนเจพเจกเจพ เจธเฉเจ†เจ—เจค เจนเฉˆ.

เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹?

  • Sonatype Nexus เจฎเฉเจซเจผเจค เจนเฉˆ

  • Sonatype Nexus เจฆเจพ เจญเฉเจ—เจคเจพเจจ เจ•เฉ€เจคเจพ

  • เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸเจฐเฉ€ เจฎเฉเจซเจค เจนเฉˆ

  • เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸเจฐเฉ€ เจฆเจพ เจญเฉเจ—เจคเจพเจจ เจ•เฉ€เจคเจพ

  • เจนเจพเจฐเจฌเจฐ

  • เจฎเจฟเฉฑเจ

9 เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‡ เจตเฉ‹เจŸ เจชเจพเจˆเฅค 3 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเจฐเจนเฉ‡เจœเจผ เจฐเจนเฉ‡เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹