我想为我们的nexus
实例创建一个泊坞窗,其中已创建了正确的存储库,代理等。
受this question的启发,我开始使用脚本API来配置我的存储库。通过该API配置的存储库虽然不能像手动配置的那样工作(可悲;特别是如果您想象我在使用未公开的脚本API进行配置时遇到的麻烦...)。因此,如果您真的想了解详细信息,我已经提交了一个错误:https://issues.sonatype.org/browse/NEXUS-19891
现在我的问题是:还有另一种非交互方式配置存储库的方法吗?
对于jenkins
,可以在/usr/share/jenkins/ref
中放入一些默认配置,然后将这些默认配置仅在首次启动时使用;给您一个初始配置。我想知道nexus
是否存在类似的东西?还是我不知道的其他方式?
答案 0 :(得分:0)
我使用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(这会导致存储库停止/启动并因此重新加载配置)