nexus настраивает начальные репозитории неинтерактивно - PullRequest
1 голос
/ 09 мая 2019

Я хотел бы создать докер для нашего экземпляра nexus с правильными репозиториями, прокси и т. Д., Уже созданными.

Вдохновленный этим вопросом Я начал использовать API сценариев для настройки своих репозиториев. Репозитории, настроенные с помощью этого API, не работают так же, как и те, которые настроены вручную (как это печально; особенно, если вы представляете, как мне пришлось пройти через настройку с помощью недокументированного API сценария ...). Поэтому я уже подал ошибку, если вы действительно хотите узнать подробности: https://issues.sonatype.org/browse/NEXUS-19891

Теперь мой вопрос: есть ли другой способ настроить хранилища неинтерактивно?

Для jenkins можно поместить некоторую конфигурацию по умолчанию в /usr/share/jenkins/ref, которая будет использоваться только при первом запуске; чтобы дать вам начальную конфигурацию. Мне было интересно, существует ли нечто подобное для nexus? Или каким-то другим способом, о котором я не знаю?

1 Ответ

0 голосов
/ 11 июня 2019

Я использую python, чтобы сделать что-то похожее на это:

curl -X POST -u admin:admin123 --header 'Content-Type: application/json' http://localhost:8081/service/rest/v1/script -d '{"name":"test","type":"groovy","content":"repository.createYumProxy('\''test'\'', '\''http://repository:8080/'\'')"}'
curl -X POST -u admin:admin123 --header "Content-Type: text/plain" 'http://127.0.0.1:8081/service/rest/v1/script/test/run'

точный сценарий, который я публикую (более читаемый здесь, чем со всеми этими экранированными кавычками):

repository.createYumProxy('{name}', '{url}');
configuration = repository.repositoryManager.get('{name}').configuration.copy();
configuration.attributes['proxy'] = [
    remoteUrl : "{url}",
    contentMaxAge : 0,
    metadataMaxAge : 0
]
configuration.attributes['negativeCache'] = [
    timeToLive : 1.0
]
repository.repositoryManager.update(configuration)

часть, которая отсутствовала в моем случае, была repositoryManager.update().Как указано в заявке:

Я думаю, что важный элемент (-ы), отсутствующий в вашем скрипте, заключается в том, что вы не обновляете repositoryManager с новой (скопированной) конфигурацией (что приводит к остановке хранилища /запустить и, следовательно, перезагрузить конфигурацию)

...