Video: avskĂ€rande av fiender och en dyster atmosfĂ€r i Negative Atmosphere – den andliga arvtagaren till Dead Space

Sonatype Nexus – en integrerad plattform dĂ€r utvecklare kan proxy, lagra och hantera Java (Maven)-beroenden, Docker-bilder, Python, Ruby, NPM, Bower, RPM-paket, gitlfs, Apt, Go, Nuget och Ă€ven distribuera sin programvara.

Varför behöver man Sonatype Nexus?

  • För att lagra privata artefakter;
  • För att cacha artefakter som laddas ner frĂ„n internet;

Artefakter som stöds i standarddistributionen av Sonatype Nexus:

  • Java, Maven (jar)
  • Docker
  • Python (pip)
  • Ruby (gem)
  • NPM
  • Bower
  • Yum (rpm)
  • gitlfs
  • Raw
  • Apt (deb)
  • Go
  • Nuget

Artefakter som stöds av gemenskapen:

  • Composer
  • Conan
  • CPAN
  • ELPA
  • Helm
  • P2
  • R

Installera Sonatype Nexus med hjÀlp av https://github.com/ansible-ThoTeam/nexus3-oss

Krav

  • LĂ€s om hur man anvĂ€nder ansible pĂ„ internet.
  • Installera ansible pip install ansible pĂ„ arbetsstationen dĂ€r playbooken körs.
  • Installera geerlingguy.java pĂ„ arbetsstationen dĂ€r playbooken körs.
  • Installera geerlingguy.apache pĂ„ arbetsstationen dĂ€r playbooken körs.
  • Denna roll har testats pĂ„ CentOS 7, Ubuntu Xenial (16.04) och Bionic (18.04), Debian Jessie och Stretch
  • jmespath biblioteket mĂ„ste installeras pĂ„ arbetsstationen dĂ€r playbooken körs. För installation, utför sudo pip install -r requirements.txt
  • Spara playbook-filen (exempel nedan) till filen nexus.yml
  • Kör installationen av nexus ansible-playbook -i host nexus.yml

Exempel pÄ ansible-playbook för att installera nexus utan LDAP med Maven (java), Docker, Python, Ruby, NPM, Bower, RPM och gitlfs-repositorier.

---
- 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: 'LÀs- och blÀddringsÄtkomst till alla repo'
        repository: '*'
        actions:
          - read
          - browse
      - name: company-project-deploy
        description: 'Uppdateringar till company-project'
        repository: company-project
        actions:
          - add
          - edit
    nexus_roles:
      - id: Developpers # mappas till LDAP-gruppen
        name: utvecklare
        description: Alla utvecklare
        privileges:
          - nx-search-read
          - all-repos-read
          - company-project-deploy
        roles: []
    nexus_local_users:
      - username: jenkins # anvÀnds som nyckel för uppdatering
        first_name: Jenkins
        last_name: CI
        email: support@company.com
        password: "s3cr3t"
        roles:
          - Developpers # roll-ID hÀr
    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. Ändra nexus_config_yum till true för att skapa 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. Ändra nexus_config_npm till true för att skapa 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. Ändra nexus_config_docker till true för att skapa 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. Ändra nexus_config_bower till true för att skapa 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. Ändra nexus_config_pypi till true för att skapa 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. Ändra nexus_config_rubygems till true för att skapa 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. Ändra nexus_config_gitlfs till true för att skapa gitlfs-repository
    nexus_config_gitlfs: true
    nexus_repos_gitlfs_hosted:
      - name: gitlfs-hosted

  roles:
    - { role: geerlingguy.java }
    # Debian/Ubuntu endast
    # - { 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 endast
    - { 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'] }

SkÀrmbilder:

Video: avskĂ€rande av fiender och en dyster atmosfĂ€r i Negative Atmosphere – den andliga arvtagaren till Dead Space

Video: avskĂ€rande av fiender och en dyster atmosfĂ€r i Negative Atmosphere – den andliga arvtagaren till Dead Space

Rollvariabler

Rollvariabler

StandardvÀrden (se default/main.yml):

AllmÀnna variabler

    nexus_version: ''
    nexus_timezone: 'UTC'

Som standard kommer rollen att installera den senaste tillgÀngliga versionen av Nexus. Du kan ÄsidosÀtta versionen genom att Àndra variabeln nexus_version. Se tillgÀngliga versioner pÄ https://www.sonatype.com/download-oss-sonatype.

Om du Àndrar versionen till en nyare kommer rollen att försöka uppdatera din installerade Nexus.

Om du anvÀnder en Àldre version av Nexus Àn den senaste mÄste du sÀkerstÀlla att du inte anvÀnder funktioner som inte Àr tillgÀngliga i den installerade versionen (t.ex. Àr hosting av yum-repositorier tillgÀnglig för Nexus version 3.8.0 eller senare, git lfs-repo för Nexus version 3.3.0 eller senare, osv.)

nexus tidszon — Ă€r namnet pĂ„ Java-tidszonen som kan vara anvĂ€ndbar i kombination med följande cron-uttryck för nexus_scheduled tasks.

Nexus-port och kontextvÀg

    nexus_default_port: 8081
    nexus_default_context_path: ' / '

Port och kontextvÀg för Java-kopplingen. nexus_default_context_path mÄste innehÄlla ett snedstreck nÀr det Àr instÀllt, till exempel: nexus_default_context_path: ' /nexus/ '.

AnvÀndare och grupp för Nexus OS

    nexus_os_group: 'nexus'
    nexus_os_user: 'nexus'

AnvÀndaren och gruppen som anvÀnds för att Àga Nexus-filer och köra tjÀnsten kommer att skapas av rollen om den Àr frÄnvarande.

    nexus_os_user_home_dir: ' /home/nexus '

TillÄt att Àndra standardhemkatalogen för anvÀndaren nexus

Nexus-instanskataloger

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

Nexus-kataloger.

  • nexus_installation_dir innehĂ„ller installerade körbara filer
  • nexus_data_dir innehĂ„ller all konfiguration, repository och uppladdade artefakter. Anpassade sökvĂ€gar för blobstores nexus_data_dir kan konfigureras, se nedan nexus_blobstores.
  • nexus_tmp_dir innehĂ„ller alla tillfĂ€lliga filer. StandardvĂ€gen för redhat har flyttats frĂ„n /tmp för att övervinna potentiella problem med automatiserade stĂ€drutiner. Se #168.

Konfiguration av minnesanvÀndning för Nexus JVM

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

Dessa Àr standardinstÀllningar för Nexus. Tveka inte att Àndra dessa vÀrden Om du inte har lÀst avsnittet om systemkrav för nexus och inte förstÄr vad de gör.

Som en andra varning, hÀr Àr ett utdrag frÄn det ovan nÀmnda dokumentet:

Det rekommenderas inte att öka JVM heap-minnet över de rekommenderade vÀrdena i ett försök att öka prestandan. Detta kan faktiskt ha motsatt effekt och leda till onödig belastning pÄ operativsystemet.

Administratörslösenord

    nexus_admin_password: 'changeme'

Administrationens konto-lösenord för konfiguration. Detta fungerar endast vid första installationen med standardinstĂ€llningar. VĂ€nligen se [Ändra administratörslösenordet efter första installationen](# change-admin-password-after-first-install), om du vill Ă€ndra det senare med rollen.

Det Àr starkt rekommenderat att inte lagra ditt lösenord i klartext i playbook, utan att anvÀnda [ansible-vault-kryptering] (https://docs.ansible.com/ansible/latest/user_guide/vault.html) (antingen inbÀddat eller i en separat fil som laddas upp med hjÀlp av include_vars)

Anonym Ätkomst som standard

    nexus_anonymous_access: false

Anonym Ätkomst som standard Àr avstÀngd. Mer information om anonym Ätkomst.

Offentligt vÀrdnamn

    nexus_public_hostname: 'nexus.vm'
    nexus_public_scheme: https

Det fullstÀndiga domÀnnamnet och schemat (https eller http) som Nexus-instansen kommer att vara tillgÀnglig för sina kunder.

API-Ätkomst för denna roll

    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 }}"

Dessa variabler styr hur rollen ansluter till Nexus API för att tillhandahÄlla.
Endast för avancerade anvÀndare. Du vill troligtvis inte Àndra dessa standardinstÀllningar.

Konfigurera omvÀnd proxy

    httpd_setup_enable: false
    httpd_server_name: "{{ nexus_public_hostname }}"
    httpd_default_admin_email: "admin@example.com"
    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

Installera SSL-omvÀnd proxyserver.
För detta behövs httpd. Observera: nÀr httpd_setup_enable Àr instÀllt pÄtrue, ansluter nexus till 127.0.0.1:8081, sÄledes inte blir direkt tillgÀnglig via HTTP-port 8081 med extern IP-adress.

Det anvÀnda vÀrdnamnet som standard Àr nexus_public_hostname. Om du behöver olika namn av nÄgon anledning kan du ange httpd_server_name med ett annat vÀrde.

Med httpd_copy_ssl_files: true (standard) de ovan nÀmnda certifikaten ska finnas i din playbook-directory och kommer att kopieras till servern och konfigureras i apache.

Om du vill anvÀnda befintliga certifikat pÄ servern, stÀll in httpd_copy_ssl_files: false och ange följande variabler:

    # 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 Àr valfritt och bör lÀmnas oinstÀllt om du inte vill konfigurera certifikatkedjefilen

    httpd_default_admin_email: "admin@example.com"

StÀll in standardadministratörens e-postadress

LDAP-konfiguration

LDAP-anslutningar och standard sÀkerhetsomrÄde Àr inaktiverat

    nexus_ldap_realm: false
    ldap_connections: []

LDAP-anslutningar, varje element ser ut som följer:

    nexus_ldap_realm: true
    ldap_connections:
      - ldap_name: 'My Company LDAP' # anvÀnds som en nyckel för att uppdatera ldap-konfigurationen
        ldap_protocol: 'ldaps' # ldap eller ldaps
        ldap_hostname: 'ldap.mycompany.com'
        ldap_port: 636
        ldap_use_trust_store: false # Om certifikat ska anvÀndas i nexus tillitslager
        ldap_search_base: 'dc=mycompany,dc=net'
        ldap_auth: 'none' # eller simple
        ldap_auth_username: 'anvÀndarnamn' # om auth = simple
        ldap_auth_password: 'lösenord' # om auth = simple
        ldap_user_base_dn: 'ou=users'
        ldap_user_filter: '(cn=*)' # (valfritt)
        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

Exempel pÄ LDAP-konfiguration för anonym autentisering (anonym bindning), detta Àr ocksÄ en "minimal" konfiguration:

    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'

Exempel pÄ LDAP-konfiguration för enkel autentisering (med hjÀlp av DSA-konto):

    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 }}" # bÀttre att hÄlla lösenord i en 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

Exempel pÄ LDAP-konfiguration för enkel autentisering (med hjÀlp av DSA-konto) + grupper som mappas som roller:

    nexus_ldap_realm: true
    ldap_connections
      - ldap_name: 'LDAP-konfiguration med 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 }}" # det Àr bÀttre att hÄlla lösenord i en 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

Exempel pÄ LDAP-konfiguration för enkel autentisering (med DSA-konto) + grupper som dynamiskt mappas till roller:

    nexus_ldap_realm: true
    ldap_connections:
      - ldap_name: 'LDAP-konfiguration med 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 }}" # det Àr bÀttre att hÄlla lösenord i en 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'

Behörigheter

    nexus_privileges:
      - name: all-repos-read # anvÀnds som nyckel för att uppdatera en behörighet
        # type: 
        description: 'LÀsa & BlÀddra Ätkomst till alla repos'
        repository: '*'
        actions: # kan vara add, browse, create, delete, edit, read eller * (alla)
          - read
          - browse
        # pattern: pattern
        # domain: domain
        # script_name: name

Lista behörigheter för konfiguration. Se dokumentationen och grÀnssnittet för att kontrollera vilka variabler som bör anges beroende pÄ behörighetstypen.

Dessa element kombineras med följande standardvÀrden:

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

Roller (som avses inom Nexus)

    nexus_roles:
      - id: Developpers # kan mappa till ett LDAP-grupp-id, ocksÄ anvÀndas som nyckel för att uppdatera en roll
        name: developers
        description: Alla utvecklare
        privileges:
          - nx-search-read
          - all-repos-read
        roles: [] # referenser till andra rollnamn

Lista roller för konfiguration.

AnvÀndare

    nexus_local_users: []
      # - username: jenkins # anvÀnds som nyckel för att uppdatera
      #   state: present # standardvÀrde om utelÀmnat, anvÀnd 'absent' för att ta bort anvÀndare
      #   first_name: Jenkins
      #   last_name: CI
      #   email: support@company.com
      #   password: "s3cr3t"
      #   roles:
      #     - developers # roll-ID

Lista över lokala (icke-LDAP) anvÀndare/konton som ska skapas i nexus.

Lista över lokala (inte LDAP) anvÀndare/konton för skapande i Nexus.

      nexus_ldap_users: []
      # - anvÀndarnamn: j.doe
      #   status: nÀrvarande
      #   roller:
      #     - "nx-admin"

LÀnkning av LDAP-anvÀndare/roller. Status frÄnvarande tar bort roller frÄn en befintlig anvÀndare, om den redan finns.
LDAP-anvÀndare tas inte bort. Att försöka stÀlla in en roll för en icke-existerande anvÀndare kommer att leda till ett fel.

InnehÄllsvalare

  nexus_content_selectors:
  - namn: docker-login
    beskrivning: VÀjare för docker inloggningsprivilegium
    sökuttryck: format=="docker" och path=~"/v2/"

För mer information om innehÄllsvaljaren, se. Dokumentationen.

För att anvÀnda innehÄllsvaljaren, lÀgg till ett nytt privilegium med typ: repository-content-selector och motsvarandecontentSelector

- namn: docker-login-privilegie
  typ: repository-content-selector
  contentSelector: docker-login
  beskrivning: 'Inloggning till Docker-register'
  repository: '*'
  ÄtgÀrder:
  - lÀs
  - blÀddra

Blobstores och repon

    nexus_delete_default_repos: false

Ta bort repos frÄn Nexus installations ursprungliga standardkonfiguration. Detta steg utförs endast vid första installation (nÀr nexus_data_dir har upptÀckts som tom).

Ta bort repos frÄn den ursprungliga standardkonfigurationen för Nexus. Detta steg utförs endast vid första installation (nÀr nexus_data_dir Àr tom).

    nexus_delete_default_blobstore: false

Ta bort den standarda blobstore frÄn Nexus installations ursprungliga standardkonfiguration. Detta kan endast göras om nexus_delete_default_repos: true och alla konfigurerade repos (se nedan) har en tydlig blob_store: custom. Detta steg utförs endast vid första installation (nÀr nexus_data_dir har upptÀckts som tom).

BLOBS-hantering (binaries) Àr avstÀngd som standard frÄn den ursprungliga konfigurationen. För att ta bort blobstore (binarier) stÀng av nexus_delete_default_repos: true. Detta steg utförs endast vid första installation (nÀr nexus_data_dir Àr tom).

    nexus_blobstores: []
    # exempel blobstore post :
    # - namn: separate-storage
    #   typ: fil
    #   vÀg: /mnt/custom/path
    # - namn: s3-blobstore
    #   typ: S3
    #   konfiguration:
    #     bucket: s3-blobstore
    #     accessKeyId: "{{ VAULT_ENCRYPTED_KEY_ID }}"
    #     secretAccessKey: "{{ VAULT_ENCRYPTED_ACCESS_KEY }}"

Blobstores för att skapa. En blobstore-vÀg och en repository blobstore kan inte uppdateras efter det första skapandet (alla uppdateringar hÀr kommer att ignoreras vid omkonfiguration).

Konfigurering av blobstore pÄ S3 erbjuds som en bekvÀmlighet och Àr inte en del av de automatiserade tester vi kör pÄ travis. Observera att lagring pÄ S3 endast rekommenderas för instanser som distribueras pÄ AWS.

Skapande Blobstores. VÀgen till lagring och repositories lagring kan inte uppdateras efter det första skapandet (alla uppdateringar hÀr kommer att ignoreras vid ny installation).

Konfigurering av blobstore pÄ S3 erbjuds för bekvÀmlighet. Observera att lagring pÄ S3 rekommenderas endast för instanser som distribueras pÄ AWS.

    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/'

Ovan exempel pÄ konfiguration proxy-server Maven.

    nexus_repos_maven_hosted:
      - name: private-release
        version_policy: release
        write_policy: allow_once  # en av "allow", "allow_once" eller "deny"

Maven hostade repository konfiguration. Negativ cachekonfiguration Àr valfri och kommer att anvÀnda ovanstÄende vÀrden som standard om den utelÀmnas.

Konfiguration hostade repositorier Maven. Negativ cachekonfiguration (-1) Àr valfri och kommer att standardmÀssigt anvÀnda ovanstÄende vÀrden om ingen anges.

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

Konfiguration arbetsgrupp Maven.

Alla tre typer av repository kombineras med följande standardvÀrden:

    _nexus_repos_maven_defaults:
      blob_store: default # Obs: kan inte uppdateras nÀr repository har skapats
      strict_content_validation: true
      version_policy: release # release, snapshot eller mixed
      layout_policy: strict # strict eller permissive
      write_policy: allow_once # en av "allow", "allow_once" eller "deny"
      maximum_component_age: -1  # Nexus gui standard. För proxy endast
      maximum_metadata_age: 1440  # Nexus gui standard. För proxy endast
      negative_cache_enabled: true # Nexus gui standard. För proxy endast
      negative_cache_ttl: 1440 # Nexus gui standard. För proxy endast

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS och yum repository typer:
se defaults/main.yml för dessa alternativ:

Docker, Pypi, Raw, Rubygems, Bower, NPM, Git-LFS och yum Àr som standard avstÀngda:
Se defaults/main.yml för dessa alternativ:

      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

Observera att du kan behöva aktivera vissa sÀkerhetsomrÄden om du vill anvÀnda andra typer av repositories Àn maven. Detta Àr som standard false

nexus_nuget_api_key_realm: false
nexus_npm_bearer_token_realm: false
nexus_docker_bearer_token_realm: false  # krÀvs för anonym Ätkomst till docker

Remote User Realm kan ocksÄ aktiveras med

nexus_rut_auth_realm: true

och headern kan konfigureras genom att ange

nexus_rut_auth_header: "CUSTOM_HEADER"

Schemalagda uppgifter

    nexus_scheduled_tasks: []
    #  #  Exempeluppgift för att komprimera blobstore:
    #  - namn: compact-docker-blobstore
    #    cron: '0 0 22 * * ?'
    #    typeId: blobstore.compact
    #    task_alert_email: alerts@example.org  # valfritt
    #    taskProperties:
    #      blobstoreName: {{ nexus_blob_names.docker.blob }} # alla uppgiftsattribut lagras som strÀngar av nexus internt
    #  #  Exempeluppgift för att rensa maven snapshots
    #  - namn: Purge-maven-snapshots
    #    cron: '0 50 23 * * ?'
    #    typeId: repository.maven.remove-snapshots
    #    task_alert_email: alerts@example.org  # valfritt
    #    taskProperties:
    #      repositoryName: "*"  # * för alla repos. Ändra till ett repository namn om du bara vill ha ett specifikt
    #      minimumRetained: "2"
    #      snapshotRetentionDays: "2"
    #      gracePeriodInDays: "2"
    #    booleanTaskProperties:
    #      removeIfReleased: true
    #  #  Exempeluppgift för att rensa oanvÀnda docker-manifester och bilder
    #  - namn: Rensa oanvÀnda docker-manifester och bilder
    #    cron: '0 55 23 * * ?'
    #    typeId: "repository.docker.gc"
    #    task_alert_email: alerts@example.org  # valfritt
    #    taskProperties:
    #      repositoryName: "*"  # * för alla repos. Ändra till ett repository namn om du bara vill ha ett specifikt
    #  #  Exempeluppgift för att rensa ofullstÀndiga dockeruppladdningar
    #  - namn: Rensa ofullstÀndiga dockeruppladdningar
    #    cron: '0 0 0 * * ?'
    #    typeId: "repository.docker.upload-purge"
    #    task_alert_email: alerts@example.org  # valfritt
    #    taskProperties:
    #      age: "24"

Schemalagda uppgifter för konfiguration. typeId och specifika för uppgiftentaskProperties/booleanTaskProperties kan gissas som antingen:

  • frĂ„n hierarkin av Java-typer org.sonatype.nexus.scheduling.TaskDescriptorSupport
  • genom att kontrollera HTML-formulĂ€ret för att skapa uppgifter i din webblĂ€sare
  • frĂ„n att observera AJAX-förfrĂ„gningar i webblĂ€saren vid manuell konfiguration av uppgiften.

Uppgiftsattributen mÄste deklareras i rÀtt YAML-block beroende pÄ deras typ:

  • taskProperties för alla strĂ€ngrelaterade attribut (dvs. namn pĂ„ repos, namn pĂ„ lagringsutrymmen, tidsperioder 
).
  • booleanTaskProperties för alla logiska attribut (dvs. frĂ€mst checkboxar i anvĂ€ndargrĂ€nssnittet för att skapa nexus-uppgifter).

SĂ€kerhetskopior

      nexus_backup_configure: false
      nexus_backup_cron: '0 0 21 * * ?'  # Se cron-uttrycksdefinitionen i nexus skapa uppgift 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  # BehÄll 4 backup rotationer som standard (nuvarande + senaste 3)

SÀkerhetskopiering kommer inte att konfigureras förrÀn du slÄr pÄ nexus_backup_configure pÄ true.
I det hÀr fallet kommer det schemalagda skriptet att konfigureras att köras i Nexus
med det angivna intervallet i nexus_backup_cron (standard 21:00 varje dag).
Se [Groovy-mall för denna uppgift](templates / backup.groovy.j2) för mer information.
Denna schemalagda uppgift Àr oberoende av andra nexus_scheduled_tasks, som du
deklarera i din playbook.

Om du vill rotera/ta bort sÀkerhetskopior, stÀll in nexus_backup_rotate: true och stÀll in antalet sÀkerhetskopior som du vill spara med hjÀlp av nexus_backup_keep_rotations (standard 4).

Vid anvÀndning av rotation, om du vill spara ytterligare diskutrymme under sÀkerhetskopieringsprocessen,
kan du stÀlla in nexus_backup_rotate_first: true. Detta kommer att konfigurera förhandsrotation/radering före sÀkerhetskopiering. Som standard sker rotation efter att sÀkerhetskopian har skapats. Observera att i detta fall gamla sÀkerhetskopior
tas bort innan den aktuella sÀkerhetskopian görs.

ÅterstĂ€llningsprocedur

Kör playbook med parametern -e nexus_restore_point=
(till exempel, 2017-12-17-21-00-00 för 17 december 2017 klockan 21:00)

Borttagning av nexus

Varning: detta raderar helt aktuella data. Se till att du gör en sÀkerhetskopia tidigare om det behövs.

AnvÀnd variabeln nexus_purge, om du behöver starta om frÄn början och ominstallera nexus-instansen med radering av all data.

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

Ändra administratörslösenordet efter första installationen

    nexus_default_admin_password: 'admin123'

Detta bör inte Àndras i din playbook. Denna variabel fylls med det standardadministratörslösenord som anvÀnds vid första installationen och sÀkerstÀller att vi kan Àndra administratörslösenordet till nexus_admin_password.

Om du vill Àndra administratörslösenordet efter första installationen kan du tillfÀlligt Àndra det till det gamla lösenordet frÄn kommandoraden. Efter Àndringen nexus_admin_password i din spelbok kan du köra:

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

Telegramkanal om Nexus Sonatype: https://t.me/ru_nexus_sonatype

Endast registrerade anvÀndare kan delta i omröstningen. Logga in, tack.

Vilka artefaktlager anvÀnder du?

  • Sonatype Nexus gratis

  • Sonatype Nexus betalversion

  • Artifactory gratis

  • Artifactory betalversion

  • Harbor

  • Pulp

Röstat av 9 anvÀndare. 3 anvÀndare avstod.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster