如何通过代理仓库安装Choco包?解决Bootstrap脚本缺失问题
解决Nexus Chocolatey代理仓库缺少Bootstrap脚本的方案
1. 创建Nexus Chocolatey Hosted仓库
代理仓库仅能拉取远程资源,需新建一个hosted仓库存储本地bootstrap脚本:
- 登录Nexus管理界面,进入「Repositories」→「Create repository」
- 选择
chocolatey (hosted)类型,填写仓库ID(例如choco-hosted),完成基础配置后确保仓库处于「Online」状态
2. 上传Chocolatey Bootstrap脚本至Hosted仓库
先获取官方脚本,再上传到Nexus:
- 本地执行PowerShell命令下载脚本:
Invoke-WebRequest -Uri "https://community.chocolatey.org/install.ps1" -OutFile "install.ps1"
- 界面上传:进入
choco-hosted仓库的「Upload」页面,选择本地install.ps1完成上传 - API上传(自动化场景):
$nexusUser = "your-nexus-username" $nexusPass = "your-nexus-password" $base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$nexusUser:$nexusPass")) Invoke-RestMethod -Uri "http://my-nexus.myorg.org:8081/repository/choco-hosted/install.ps1" ` -Method Put ` -InFile "install.ps1" ` -Headers @{ "Authorization" = "Basic $base64Auth" }
3. 更新Chocolatey仓库组(choco-group)
确保choco-group包含新建的hosted仓库:
- 进入Nexus的「Repositories」→「choco-group」→「Member repositories」
- 添加
choco-hosted到成员列表,可将其优先级设为高于代理仓库,确保优先从本地获取脚本
4. 调整Ansible Playbook配置
修改win_chocolatey模块的bootstrap_script参数,指向Nexus仓库组内的脚本地址:
- name: Install Virtualbox 7.0.18 via Nexus Chocolatey win_chocolatey: name: virtualbox version: '7.0.18' source: http://my-nexus.myorg.org:8081/repository/choco-group/ bootstrap_script: http://my-nexus.myorg.org:8081/repository/choco-group/install.ps1
仓库组会自动路由请求到hosted仓库获取脚本,无需直接指定单个仓库地址。
5. 验证部署
执行Playbook后,检查目标Windows机器的Chocolatey安装日志(路径通常为C:\ProgramData\chocolatey\logs\chocolatey.log),确认bootstrap脚本来自Nexus,同时Virtualbox安装完成。
内容的提问来源于stack exchange,提问作者MaKaNu
相关产品推荐
相关产品推荐

