使用Ansible设置Azure VM时安装软件

时间:2019-11-01 12:38:04

标签: azure ansible

我正在尝试使用ansible创建azure Windows VM,同时我想安装jfrog cli或运行可以执行此操作的powershell脚本。

我有一本剧本,可以创建一个vm,创建一个vm扩展以及从中创建映像。但是我不知道如何在创建映像之前在该虚拟机中安装软件。

1 个答案:

答案 0 :(得分:0)

如果您在工作中使用 azure Windows VM ,则可以将 .exe和.msi 格式的应用程序打包为 Chocolatey .nupkg格式 ,并在工件存储应用程序(如nexus)中托管一个巧克力裸子托管回购,您可以在其中推送和以后进行源安装您要使用 win_chocolatey ansible模块在这些VM中安装的这些 chocolatey .nupkg软件包

示例任务以安装巧克力状软件包:

- name: "chocolatey task: install packages from internal choco nuget-hosted nexus repo"
  win_chocolatey:
    name: "{{ item.name }}"
    version: "{{ item.version }}"
  loop:
    - { name: 'jdk8', version: '8.0.xxx' }
    - { name: 'msbuildtools', version: 'xxx' }
    - { name: 'SevenZip', version: 'xx' }

win_chocolatey ansible模块: https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html

什么是巧克力?

Is is a framework to package applications which are in .exe or .msi formats into .nupkg
(nuget packages) which will have a installation script within the package and 
when you run choco commands to install a certain application, it either get
chocolatey packages from opensource chocolatey gallery or for organization 
purpose you might want to create custom package for network and security reasons.

巧克力文档: https://chocolatey.org/why-chocolatey

如何创建自定义/离线巧克力包? https://chocolatey.org/docs/how-to-create-custom-package-templates

基本Chocolatey命令:

choco install <package-name> --version <version> -y ->默认情况下从https://chocolatey.org/api/v2/

获取choco软件包

choco uninstall <package-name> -y ->卸载软件包。如果已安装多个版本的软件包,也可以使用--version选项

choco source add -n=<AnyName> -s="<URL-Internal-choco-repo>" ->在Windows机器上的巧克力源中添加内部由巧克力nuget托管的链接存储库

choco source list ->列出从中获取软件包的所有添加源

choco source remove -n="<NameOfSource>" ->要删除所有巧克力来源列表中的任何来源

巧克力命令: https://github.com/chocolatey/choco/wiki/CommandsSources