service:nexus
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:nexus [30.07.2024 19:21] – внешнее изменение 127.0.0.1 | service:nexus [07.03.2025 08:51] (текущий) – [Nexus как веб-сервер] viacheslav | ||
---|---|---|---|
Строка 397: | Строка 397: | ||
https:// | https:// | ||
https:// | https:// | ||
+ | |||
+ | ==== Ansible ==== | ||
+ | <code bash> | ||
+ | ansible k3 -m maven_artifact -a " | ||
+ | repository_url=http:// | ||
+ | username=admin | ||
+ | password=admin | ||
+ | artifact_id=lunar-lang | ||
+ | group_id=org.foo | ||
+ | dest=/ | ||
+ | </ | ||
===== Поиск ===== | ===== Поиск ===== | ||
Строка 429: | Строка 440: | ||
</ | </ | ||
+ | ==== Получить версию самой последней версии артефакта ==== | ||
+ | Нужно, чтобы проставить версию в описании компонента при деплое. Надо парсить maven-metadata.xml | ||
+ | <code bash> | ||
+ | version=$(curl -qu admin:admin http:// | ||
+ | # В версиях встречаются цифры, точки и дефисы | ||
+ | sed ' | ||
+ | 1.0.12 | ||
+ | </ | ||
+ | |||
+ | Это не всегда работает. Можно сначала запросить все версии (важно '' | ||
+ | <code bash> | ||
+ | # curl | ||
+ | json=$(curl -qu admin:admin ' | ||
+ | |||
+ | jq -r .version <<< | ||
+ | </ | ||
+ | |||
+ | Ansible | ||
+ | <code yaml> | ||
+ | - name: Get artifact versions | ||
+ | uri: | ||
+ | url: http:// | ||
+ | user: admin | ||
+ | password: admin | ||
+ | method: GET | ||
+ | force_basic_auth: | ||
+ | validate_certs: | ||
+ | body_format: | ||
+ | register: versions | ||
+ | |||
+ | - name: Set variables | ||
+ | set_fact: | ||
+ | artifactId: "{{ versions[' | ||
+ | extension: "{{ versions[' | ||
+ | groupId: "{{ versions[' | ||
+ | version: "{{ versions[' | ||
+ | |||
+ | - name: Display variables | ||
+ | debug: | ||
+ | msg: | ||
+ | - "{{ groupId }}" | ||
+ | - "{{ artifactId }}.{{ extension }}" | ||
+ | - "{{ version }}" | ||
+ | |||
+ | # Как вариант - запрос json | ||
+ | # - debug: | ||
+ | # msg: "{{ versions.json | json_query(' | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | ==== Список репозиториев ==== | ||
+ | '' | ||
+ | <code bash> | ||
+ | (& curl.exe -ku admin:admin http:// | ||
+ | ConvertFrom-Json) |select name, | ||
+ | |||
+ | name format type | ||
+ | ---- ------ ---- | ||
+ | docker | ||
+ | maven-central | ||
+ | maven-public | ||
+ | maven-releases | ||
+ | maven-snapshots maven2 hosted http:// | ||
+ | nuget.org-proxy nuget proxy http:// | ||
+ | nuget-group | ||
+ | nuget-hosted | ||
+ | pypi pypi | ||
+ | pypi-lib | ||
+ | test raw hosted http:// | ||
+ | ubuntu2204 | ||
+ | ubuntu2204-sec | ||
+ | </ | ||
===== Удаление ===== | ===== Удаление ===== | ||
<code powershell> | <code powershell> | ||
Строка 465: | Строка 548: | ||
https:// | https:// | ||
+ | ==== Миграция OrientDB > H2 ==== | ||
+ | Nexus 3.70 - последняя версия, | ||
+ | <code bash> | ||
+ | # Забэкапить базы из GUI, скопировать в папку backup. | ||
+ | # Остановить Nexus. | ||
+ | # Скачать мигратор | ||
+ | curl -L https:// | ||
+ | # Запустить Nexus в командной строке | ||
+ | docker run -it --rm -v ./ | ||
+ | # В контейнере: | ||
+ | cd /nexus-data | ||
+ | java -Xmx16G -Xms1G -XX: | ||
+ | # На хосте | ||
+ | cp backup/ | ||
+ | echo " | ||
+ | </ | ||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | ==== SSL ==== | ||
+ | Исходный сертификат с ключом должен быть в формате PCKS12. | ||
+ | <code bash> | ||
+ | # Если исходник в формате PEM, его надо сконвертировать | ||
+ | openssl pkcs12 -export -in cert.pem -out cert.pkcs12 | ||
+ | |||
+ | # Если исходник - это crt + key, то | ||
+ | openssl pkcs12 -export -in cert.crt -inkey private.key -out cert.pkcs12 | ||
+ | </ | ||
+ | Если исходник в виде .pfx, то конвертировать ничего не надо. | ||
+ | |||
+ | <code bash> | ||
+ | # Импортировать сертификат в хранилище ключей jks | ||
+ | # Важно: пароль оставить тем же, что и в сертификате | ||
+ | # Возможно, | ||
+ | keytool -v -importkeystore -srckeystore cert.pkcs12 -srcstoretype PKCS12 \ | ||
+ | -destkeystore | ||
+ | |||
+ | nano < | ||
+ | # Добавить строку | ||
+ | application-port-ssl=443 | ||
+ | # Раскомментировать строку с nexus-args и добавить туда | ||
+ | ${jetty.etc}/ | ||
+ | |||
+ | nano < | ||
+ | # Заменить password на пароль сертификата (в 3 местах) | ||
+ | </ | ||
+ | Перезапустить Nexus. | ||
+ | |||
+ | https:// | ||
+ | ===== Дополнительно ===== | ||
+ | ==== Nexus как веб-сервер ==== | ||
+ | Создаётся репозиторий hosted raw, и в его настройках нужно переключить Content Disposition на Inline, чтобы html-файлы отображались непосредственно в браузере, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== Проблемы ===== | ||
+ | ==== An error occured saving data. Duplicate key ==== | ||
+ | Появляется при попытке загрузки после миграции БД с OrientDB на H2. | ||
+ | |||
+ | предполагаемое решение: | ||
===== Литература ===== | ===== Литература ===== | ||
service/nexus.1722367260.txt.gz · Последнее изменение: 30.07.2024 19:21 — 127.0.0.1