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

时间:2017-10-17 02:09:06

标签: windows ansible ansible-galaxy

我正在通过micheal堆从ansible-beginner到pro学习ansible。似乎在Windows上不支持ansible。该书建议从虚拟机运行ansible。我使用vagrant创建了一个VMbox,它上面有ubuntu / trusty64。我成功地能够在其上运行我的剧本。但是,在创建ansible-galaxy角色时遇到了一个问题。

我找不到在Windows上创建/初始化角色的方法。我模糊地借用了这个问题How to automatically install Ansible Galaxy roles?中的想法,并将以下命令添加到我的Playbook创建角色的窗口 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中有另一个/更好的方法吗?

2 个答案:

答案 0 :(得分:1)

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

  • 任务
  • 处理程序
  • 模板
  • 文件

最后,在每个文件夹中创建一个名为main.yml的文件,其顶部包含---

您现在可以运行Ansible角色。您添加到tasks/main.yml的任何任务都将被执行。

答案 1 :(得分:1)

这通常是我要做的:只需创建这些文件夹和main.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 } 
}*
相关问题