如何在windows中创建ansible galaxy角色?

xyhw6mcr  于 2022-12-05  发布在  Windows
关注(0)|答案(2)|浏览(137)

我正在学习ansible,从ansible-beginner到micheal heap的pro。似乎在windows上不支持ansible。这本书建议从虚拟机运行ansible。我用vagrant启动了一个VMbox,上面有ubuntu/trusty 64。我可以成功地在上面运行我的剧本。但是,我在创建ansible-galaxy角色时遇到了一个问题。
我找不到在windows上创建/初始化角色的方法。我模糊地借鉴了这个问题How to automatically install Ansible Galaxy roles?的想法,并将以下命令添加到我的剧本create roles on windows local_action: command ansible-galaxy init sush.util --init-path roles

---
- hosts: all
  gather_facts: false
  become: true
  tasks:
    - name: make sure we can connect
      ping:
    #ansible-galaxy
    - name: Init sush.util
      local_action: command ansible-galaxy init sush.util --init-path roles
      ignore_errors: true

我还添加了ignore_errors=true,以便在角色已经创建的情况下忽略错误。这是正确的方法吗?或者在windows中有其他/更好的方法吗?

mrzz3bfm

mrzz3bfm1#

如果您的目标是在Windows本地创建角色,您实际上不需要使用Ansible Galaxy来完成。Ansible角色只是一组文件夹。要创建sush.util角色,请创建一个名为sush.util的文件夹,然后在其中创建以下文件夹:

  • 工作
  • 处理程序
  • 模板
  • 档案
  • 瓦尔斯
  • meta

最后,在每个文件夹中创建一个名为main.yml的文件,文件顶部包含---
您现在有了一个可以运行的Ansible角色。您添加到tasks/main.yml的任何任务都将被执行。

oyt4ldly

oyt4ldly2#

这就是我通常做的:只需创建这些文件夹和主.yml文件

*$path = "c:\git\install-sqlserver"
$main = "main.yml"
$dir = "defaults","files","handlers","meta","tasks","templates","tests","vars"
foreach ($d in $Dir){
New-Item -Path $path -Name $d -ItemType "directory"
New-Item -Path "$path\$d" -Name $main -ItemType "file" -Value "---"
if ((Test-path $path )){
New-Item -Path $path -Name $main -ItemType "file" -Value "---" -ErrorAction SilentlyContinue } 
}*

相关问题