/ / support_check_mode für Nicht-Python-Modul - ansible, ansible-2.x

supports_check_mode für Nicht-Python-Module - ansible, ansible-2.x

Ein in Python geschriebenes Ansible-Modul kann Support-Überprüfungsmodus indem man es einstellt supports_check_mode=True:

module = AnsibleModule(
argument_spec = dict(...),
supports_check_mode=True
)

Jetzt habe ich ein mehr als 700 Zeilen langes Ruby-Skript, das ich gerne in ein Modul verwandeln möchte und es vermeiden möchte, es in Python zu übersetzen. Gibt es eine Möglichkeit, den Prüfmodus für Nicht-Python-Module zu unterstützen?

Antworten:

3 für die Antwort № 1

Ansible wird ein Argument übergeben _ansible_check_mode auf das Modul, was wahr ist, wenn Sie sich im Prüfmodus befinden.

Denken Sie daran, dass die Argumente in eine Datei eingefügt werden und der Pfad zur Datei das Argument # 2 ist.

Hier ist ein PHP-Beispiel:

./library/test_module.php

#!/usr/bin/env php
<?php

// WANT_JSON Causes ansible to store args in JSON

$args = json_decode(file_get_contents($argv[1]), true);

$check_mode = !empty($args["_ansible_check_mode"]);

$output = array(
"changed" => false,
"checking" => $check_mode
);

echo json_encode($output);

Passendes Spielbuch:

./test_module.yml

---
- hosts: localhost
gather_facts: no
become: no
tasks:
- test_module:
key: value