Dynami c запасы с использованием AWS Go SDK - PullRequest
0 голосов
/ 06 марта 2020

Как уже упоминалось здесь , если вы пользуетесь облачным провайдером, вам не следует управлять своими запасами в stati c файле. Вместо этого используйте Dynami c инвентарь


Ansible документация дает только python boto sdk как дамы c инвентаризации, как показано здесь .

     ansible -i ec2.py -u ubuntu us-east-1d -m ping

Позволяет ли ansible (-i) выполнять динамические c описи, написанные с использованием AWS Go sdk? вместо python boto sdk.

1 Ответ

1 голос
/ 06 марта 2020

Да, ansible будет использовать любую команду, которая может выдать необходимый вывод JSON, включая только сценарий оболочки, как указано подробным руководством :

В предыдущих версиях вам приходилось создавать скрипт или программу, которая может выводить JSON в правильном формате при вызове с правильными аргументами. Вы по-прежнему можете использовать и писать сценарии инвентаризации, поскольку мы обеспечили обратную совместимость через плагин инвентаризации сценариев, и нет ограничений на используемый язык программирования.

в качестве конкретного golang пример:

package main
import (
    "encoding/json"
    "fmt"
)
func main() {
    i := map[string]interface{}{
        "_meta": map[string]interface{}{
            "hostvars": map[string]interface{}{
                "example.host": map[string]interface{}{
                    "ansible_host": "127.0.0.1",
                    "ansible_user": "ubuntu",
                },
            },
        },
        "all": map[string]interface{}{
            "children": []string{"ungrouped"},
        },
        "ungrouped": map[string]interface{}{
            "hosts": []string{"example.host"},
        },
    }
    ba, err := json.Marshal(i)
    if err != nil { panic(err) }
    fmt.Println(string(ba))
}

Вызывается с помощью обычного механизма:

go build -o sample-inv ./main.go
ansible -i ./sample-inv -m ping all
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...