我正在通过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中有另一个/更好的方法吗?
答案 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 }
}*