lablabs.nexus_config
Sonatype Nexus Repository Manager 構成
この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を参照してください。
Apacheソフトウェア財団(ASF)の1つまたは複数の寄稿ライセンス契約に基づき、これによりライセンスされています。
追加の著作権情報については、配布されたNOTICEファイルを参照してください。このファイルは
Apacheライセンスのもとで使用することができます。詳細は以下のURLを参照してくだい。
https://www.apache.org/licenses/LICENSE-2.0
適用法または契約に書面で合意された場合を除き、
ライセンスの下で配布されるソフトウェアは「現状のまま」です。
ライセンスの特定の権利や制限については、ライセンスの規定を参照してください。
作者情報
2021年にLabyrinth Labsにより作成されました。
インストール
ansible-galaxy install lablabs.nexus_config
ライセンス
apache-2.0
ダウンロード
95
所有者