|
@@ -0,0 +1,77 @@
|
|
|
+# ansible_playbook
|
|
|
+
|
|
|
+## Synopsis
|
|
|
+
|
|
|
+Run an Ansible playbook. Ansible is a free-software platform for configuring and managing computers which combines multi-node software deployment,
|
|
|
+ad hoc task execution, and configuration management.
|
|
|
+
|
|
|
+Playbooks are Ansible’s configuration, deployment, and orchestration language. They can describe a policy you want your remote systems to enforce,
|
|
|
+or a set of steps in a general IT process.
|
|
|
+
|
|
|
+This neuron can be used to perform complex operation with all [modules available from Ansible](http://docs.ansible.com/ansible/modules.html).
|
|
|
+
|
|
|
+
|
|
|
+## Options
|
|
|
+
|
|
|
+| parameter | required | default | choices | comment |
|
|
|
+|-----------|----------|---------|---------|----------------------------------------------|
|
|
|
+| task_file | YES | | | path to the Playbook file that contain tasks |
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Synapses example
|
|
|
+
|
|
|
+Call the playbook named playbook.yml
|
|
|
+```
|
|
|
+ - name: "Ansible-test"
|
|
|
+ neurons:
|
|
|
+ - ansible_playbook: "playbook.yml"
|
|
|
+ - say:
|
|
|
+ message: "Tache terminée"
|
|
|
+ signals:
|
|
|
+ - order: "playbook"
|
|
|
+```
|
|
|
+
|
|
|
+Content of the playbook. This playbook will use the [URI module](http://docs.ansible.com/ansible/uri_module.html) to interact with a webservice on a remote server.
|
|
|
+```
|
|
|
+---
|
|
|
+- name: Playbook
|
|
|
+ hosts: localhost
|
|
|
+ gather_facts: no
|
|
|
+ connection: local
|
|
|
+
|
|
|
+ tasks:
|
|
|
+ - name: "Call api"
|
|
|
+ uri:
|
|
|
+ url: "http://192.168.0.17:8000/app"
|
|
|
+ HEADER_Content-Type: "application/json"
|
|
|
+ method: POST
|
|
|
+ user: admin
|
|
|
+ password: secret
|
|
|
+ force_basic_auth: yes
|
|
|
+ status_code: 201
|
|
|
+ body_format: json
|
|
|
+ body: >
|
|
|
+ {"app_name": "music", "state": "start"}
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+## Note
|
|
|
+
|
|
|
+Ansible contain a lot of modules that can be useful for Kalliope
|
|
|
+
|
|
|
+- [Notification](http://docs.ansible.com/ansible/list_of_notification_modules.html): can be used to send a message to Pushbullet, IRC channel, Rocket Chat and a lot of other notification services
|
|
|
+- [Files](http://docs.ansible.com/ansible/list_of_files_modules.html): can be used to perform a backup or synchronize two file path
|
|
|
+- [Windows](http://docs.ansible.com/ansible/list_of_windows_modules.html): Can be used to control a Windows Desktop
|
|
|
+
|
|
|
+Shell neuron or script neuron can perform same actions. Ansible is just a way to simplify some execution or enjoy some [already made plugin](http://docs.ansible.com/ansible/modules_by_category.html).
|
|
|
+
|
|
|
+Here is the example of synapse you would use to perform a call to a web service without Ansible:
|
|
|
+```
|
|
|
+- name: "start-music"
|
|
|
+ neurons:
|
|
|
+ - shell:
|
|
|
+ cmd: "curl -i --user admin:secret -H \"Content-Type: application/json\" -X POST -d '{\"app_name\":\"music\",\"state\":\"start\"}' http://192.168.0.17:8000/app"
|
|
|
+ signals:
|
|
|
+ - order: "start music rock"
|
|
|
+```
|