Browse Source

add ansible playbook doc

nico 8 years ago
parent
commit
dde7d0b8d4
1 changed files with 77 additions and 0 deletions
  1. 77 0
      neurons/ansible_playbook/README.md

+ 77 - 0
neurons/ansible_playbook/README.md

@@ -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"
+```