У меня есть список параметров в вызове файла YAML vars_sb_task.yml:
---
type: taskWindows
actions:
abortActions: []
emailNotifications: []
setVariableActions: []
snmpNotifications: []
systemOperations: []
agent: test
name: "Test"
summary: "Test"
...
У меня есть скрипт Powershell для создания задачи Stonebranch с именем sb.ps1:
function Stonebrach.Connect {
param(
[Parameter(Mandatory=$true)]
$Sb_uri,
[Parameter(Mandatory=$true)]
$Auth_filename,
[Parameter(Mandatory=$true)]
$Method,
[Parameter(Mandatory=$false)]
$Body
)
$basicAuth=Get-Content "C:\$auth_filename"
$headers = @{
"Authorization" = $basicAuth
"Content-Type"="application/json"
}
$RSP=$null
try{
if ( $body -eq $null ) {
$response = invoke-restmethod -Uri $Sb_uri -Method $Method -Headers $headers
}
else {
$response = invoke-restmethod -Uri $sb_uri -Method $method -Headers $headers -Body **$body**
}
return $response
}
catch{
$RSP = $_.Exception.Message
return $RSP
}
}
function Stonebranch.Create.Task.Windows {
param(
[Parameter(Mandatory=$true)]
$Sb_base_uri,
[Parameter(Mandatory=$true)]
$Auth_filename,
[Parameter(Mandatory=$true)]
$Method,
[Parameter(Mandatory=$true)]
$Body
)
Stonebrach.Connect -SB_uri $Sb_base_uri/task -Auth_filename
$Auth_filename -Method $Method -Body $Body
}
я хочу вызвать функцию следующим образом:
$response = Stonebranch.Create.Task.Windows -Sb_base_uri $Sb_base_uri -Auth_filename $Auth_filename -Method POST -Body $body
Вот вопрос: я хочу передать все параметры в vars_sb_task.yml в $ body, кто-нибудь знает, как это сделать с помощью Ansible? Так как я собираюсь вставить этот sb.ps1 в другой Сервер Windows, использующий Ansible.
Или вы можете показать мне, как передать этот yml-файл с помощью Powershell, если нет способа использовать Ansible. Я довольно новый в обеих областях, спасибо за вашу помощь.
** Редактировать:
я пытался написать книгу с vars_sb_task.yml:
---
- name: test vars file
hosts: windows
vars_files:
- /home/tung/ansible_test/vars_sb_win_task.yml
tasks:
- name: test vars
debug:
msg: "{{ agent }}"
После того, как я запустил этот playbook, он возвращает 'test', поскольку у моего агента есть значение test. Если это одна переменная, я могу передать ее в скрипт Powershell, но проблема в том, что мне нужно передать все переменные файла yaml в $ body. Я не знаю, что делать отсюда. Я пытаюсь прочитать документацию Ansible, но она не совсем понятна. Было бы неплохо, если бы кто-нибудь мог написать пример, как обрабатывать и передавать эти переменные в файле yaml в одну переменную в Powershell (в этом случае $ body)