lablabs.nexus_config

Sonatype Nexus Repository Manager 構成

Galaxy Quality Role version Role downloads molecule lint License

このAnsibleロールは、Rest APIを使用してSonatype Nexus Repository Managerを構成します。 現在、このロールがカバーしている機能は以下の通りです:

  • 管理者初期パスワード設定
  • ユーザーの作成
  • ユーザーの更新
  • ユーザーの削除
  • Blobストレージ(ファイル)の作成
  • Blobストレージ(ファイル)の更新
  • Blobストレージ(ファイル)の削除
  • Blobストレージ(AWS S3)の作成
  • Blobストレージ(AWS S3)の更新
  • Blobストレージ(AWS S3)の削除
  • Blobストレージ(Azure)の作成
  • Blobストレージ(Azure)の更新
  • Blobストレージ(Azure)の削除
  • リポジトリ(Maven, Docker, PyPi, Conda, R, npm)の作成
  • リポジトリ(Maven, Docker, PyPi, Conda, R, npm)の更新
  • リポジトリ(Maven, Docker, PyPi, Conda, R, npm)の削除
  • ロールの作成
  • ロールの更新
  • ロールの削除
  • TBD ...

必要条件

Ansible >= 2.10

ロール変数

defaults/main.ymlの内容です。

---

# 管理者ユーザー名
admin_username: admin

# 初期Nexus管理者パスワード
initial_admin_password: admin123

# 初期設定中に設定される管理者パスワード
admin_password: "{{ lookup('env', 'ADMIN_PASSWORD') }}"

# Nexus APIホスト
api_host: localhost

# Nexus APIポート
api_port: 8081

# Nexusエンドポイントプロトコル
api_protocol: http

# カスタムSSLを使用する場合のroot caの.pemファイルのパス
root_ca:

# 機密情報を含むAnsibleのエラーログを隠す(パスワードを含む可能性があります)
hide_sensitive_logs: true

# 匿名アクセス
anonymous_access: true

users: []
  # - id: joan                    # ユーザーID
  #   first_name: Joan            # ユーザーの名前
  #   last_name: Doe              # ユーザーの苗字
  #   email: [email protected]     # メールアドレス
  #   password: nbusr123          # パスワード(gitにプッシュしないでください :) )
  #   status: active              # ユーザーのステータス。有効/無効または削除済みとして設定可能。
  #   source: default             # ソース
  #   roles:                      # 割り当てられたロールのリスト
  #     - nx-admin
  # - id: joe
  #   first_name: Joe
  #   last_name: Doe
  #   email: [email protected]
  #   password: "{{ lookup('env', 'JOE_PASSWORD') }}"
  #   status: disabled
  #   source: default
  #   roles:
  #     - nx-anonymous

roles: []
  #  - id: nx-role                         # ロールID
  #    name: nx-role                       # ロール名
  #    description: 新しいロールの説明    # ロールの説明
  #    status: created                     # ロールのステータス。作成済みや削除済みと設定可能。
  #    privileges:                         # 含める特権
  #      - nx-repository-view-*-*-add
  #      - nx-repository-view-*-*-browse
  #      - nx-repository-view-*-*-read
  #    roles: [ ]                          # 含めるロール

stores: []
  # - name: file_blob             # Blob Store名
  #   type: file                  # Blob Storeタイプ(file, s3)
  #   soft_quota: 0               # Blob Storeのクォータ
  #   path: /tmp/blobs
  #   status: active              # Blob Storeのステータス(active, deleted)
  # - name: s3_blog
  #   type: s3
  #   soft_quota: 0
  #   prefix: ""
  #   region: default
  #   expiration_days: -1
  #   status: active

repositories: []
  # - name: maven_repo_hosted
  #   online: true                                  # リポジトリ状態(true, false, deleted)
  #   type: maven                                   # リポジトリタイプ(現在サポートされているのはmavenです)
  #   kind: hosted                                  # リポジトリの種類(hosted, proxy)
  #   blob_store: default                           # Blobストレージ
  #   strict_content_type_validation: false         # 厳密なコンテンツタイプ検証
  #   write_policy: allow                           # アセットのデプロイや更新を許可するかどうかを制御(allow, allow_once, deny)
  #   cleanup_names: []                             # クリーンアップポリシーの名前。クリーンアップが不要な場合は省略。
  #   version_policy: MIXED                         # バージョンポリシー(MIXED, RELEASE, SNAPSHOT)
  #   layout_policy: STRICT                         # レイアウトポリシー(STRICT, PERMISSIVE)
  #   content: INLINE                               # コンテンツ配置(INLINE)

  # - name: maven_repo_proxy
  #   online: true
  #   type: maven
  #   kind: proxy
  #   blob_store: default
  #   strict_content_type_validation: false
  #   remote_url: https://maven.example.org/repo    # リモートリポジトリのURL
  #   maximum_artifacts_age: -1                     # 最大コンポーネントの年齢
  #   maximum_metadata_age: 1440                    # 最大メタデータの年齢
  #   negative_cache: true                          # 未発見のキャッシュ
  #   not_found_cache_ttl: 1440                     # 未発見のキャッシュTTL
  #   http_client:
  #     blocked: false
  #     auto_block: true
  #     connection:
  #       retries: 0
  #       user_agent_suffix: ""
  #       timeout: 60
  #       enable_circular_redirects: false
  #       enable_cookies: false
  #       user_trust_store: false
  #     authentication:                             # リモートリポジトリの認証
  #       type: username                            # 認証タイプ(username, ntlm)
  #       username: joe
  #       password: nbusr123
  #       ntlm_host:
  #       ntlm_domain:
  #       preemptive: false
  #   routing_rule: null
  #   version_policy: MIXED
  #   layout_policy: STRICT
  #   content: INLINE

  # - name: maven_repo_group
  #   online: true
  #   type: maven
  #   kind: group
  #   blob_store: default
  #   strict_content_type_validation: false
  #   group:
  #     - maven-releases
  #     - maven-snapshots

  #  - name: docker-hub-proxy
  #    online: true
  #    type: docker
  #    kind: proxy
  #    blob_store: default
  #    strict_content_type_validation: false
  #    remote_url: "https://index.docker.io/"       # プロキシされているリモートリポジトリの場所(オプション)
  #    maximum_artifacts_age: -1
  #    maximum_metadata_age: 1440
  #    negative_cache: true
  #    not_found_cache_ttl: 1440
  #    routing_rule: null
  #    v1_enabled: true                             # このリポジトリとやり取りするためにクライアントがV1 APIを使用することを許可するか
  #    force_basic_auth: true                       # 認証を強制するかどうか(Docker Bearer Token Realmが必要)
  #    index_type: "REGISTRY"                       # Dockerインデックスのタイプ(HUB, REGISTRY, CUSTOM)
  #    index_url: "https://index.docker.io/"        # 使用するDockerインデックスのURL(オプション)

  #  - name: conda-forge-proxy
  #    online: true
  #    type: conda
  #    kind: proxy
  #    blob_store: default
  #    strict_content_type_validation: false
  #    remote_url: "https://conda.anaconda.org/conda-forge/"
  #    maximum_artifacts_age: -1
  #    maximum_metadata_age: 1440
  #    negative_cache: true
  #    not_found_cache_ttl: 1440
  #    routing_rule: null

  #  - name: cran-proxy
  #    online: true
  #    type: r
  #    kind: proxy
  #    blob_store: default
  #    strict_content_type_validation: false
  #    remote_url: "https://cloud.r-project.org"
  #    maximum_artifacts_age: -1
  #    maximum_metadata_age: 1440
  #    negative_cache: true
  #    not_found_cache_ttl: 1440
  #    routing_rule: null

  #  - name: npm-proxy
  #    online: true
  #    type: npm
  #    kind: proxy
  #    blob_store: default
  #    strict_content_type_validation: false
  #    remote_url: "https://registry.npmjs.org/"
  #    maximum_artifacts_age: -1
  #    maximum_metadata_age: 1440
  #    negative_cache: true
  #    not_found_cache_ttl: 1440
  #    routing_rule: null

例プレイブック

この例では、プレイブックが2人のNexusユーザーと1つの追加Blobストレージを作成します。

---
- name: Nexusを構成する
  hosts: all
  user: ansible
  become: yes
  vars:
    config:
      users:
        - id: joan
          first_name: Joan
          last_name: Doe
          email: [email protected]
          password: "{{ lookup('env', 'JOAN_PASSWORD') }}"
          status: active
          source: default
          roles:
            - nx-admin
        - id: joe
          first_name: Joe
          last_name: Doe
          email: [email protected]
          password: nbusr123
          status: disabled
          source: default
          roles:
            - nx-anonymous
      stores:
        - name: file_blob
          type: file
          soft_quota: 0
          path: /mydata/blobs
          status: active
  roles:
    - role: lablabs.nexus_config

ライセンス

License

詳細はLICENSEを参照してください。

Apacheソフトウェア財団(ASF)の1つまたは複数の寄稿ライセンス契約に基づき、これによりライセンスされています。
追加の著作権情報については、配布されたNOTICEファイルを参照してください。このファイルは
Apacheライセンスのもとで使用することができます。詳細は以下のURLを参照してくだい。

  https://www.apache.org/licenses/LICENSE-2.0

適用法または契約に書面で合意された場合を除き、
ライセンスの下で配布されるソフトウェアは「現状のまま」です。
ライセンスの特定の権利や制限については、ライセンスの規定を参照してください。

作者情報

2021年にLabyrinth Labsにより作成されました。

プロジェクトについて

Configure Sonatype Nexus Repository Manager

インストール
ansible-galaxy install lablabs.nexus_config
ライセンス
apache-2.0
ダウンロード
95
所有者