summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dan/host_vars/ele-calypso.yml7
-rw-r--r--inventory/host_vars/ele-calypso.yml15
-rw-r--r--roles/monitoring/sachet/defaults/main.yml14
-rw-r--r--roles/monitoring/sachet/filter_plugins/smstools.py26
-rw-r--r--roles/monitoring/sachet/handlers/main.yml5
-rw-r--r--roles/monitoring/sachet/tasks/smstools.yml34
6 files changed, 98 insertions, 3 deletions
diff --git a/dan/host_vars/ele-calypso.yml b/dan/host_vars/ele-calypso.yml
new file mode 100644
index 00000000..5b9658e8
--- /dev/null
+++ b/dan/host_vars/ele-calypso.yml
@@ -0,0 +1,7 @@
+$ANSIBLE_VAULT;1.2;AES256;dan
+39376234376434623834346662313866306666626261653232393664616463316463363065333435
+3765376238323934653636306132663231383738306435650a343737396135303833633236373761
+33653634386538353730643766323565373236303237353634376230333538636666336134363336
+6333303662383630390a333165333864323235373930356662316138313630326266626362343236
+61373336333932373264356337343364363236326639323264643832333063616564633965383837
+3930356334386135616136333736623963323035393862306630
diff --git a/inventory/host_vars/ele-calypso.yml b/inventory/host_vars/ele-calypso.yml
index b0720e98..a39322b1 100644
--- a/inventory/host_vars/ele-calypso.yml
+++ b/inventory/host_vars/ele-calypso.yml
@@ -76,3 +76,18 @@ sachet_receivers:
provider: 'smstools'
to:
- '+436644800222'
+
+sachet_usbmodeswitch:
+ "12d1:1f01": |
+ TargetVendor=0x12d1
+ TargetProductList="14db,14dc"
+ MessageContent="55534243000000000000000000000011060000000000000000000000000000"
+
+sachet_smstools_devices:
+ GSM1:
+ pre_init: 'yes'
+ device: '/dev/ttyUSB0'
+ incoming: 'yes'
+ pin: '{{ vault_sms_modem_pin }}'
+ baudrate: 115200
+ check_memory_method: 2
diff --git a/roles/monitoring/sachet/defaults/main.yml b/roles/monitoring/sachet/defaults/main.yml
index 14a07d5f..b6924a6e 100644
--- a/roles/monitoring/sachet/defaults/main.yml
+++ b/roles/monitoring/sachet/defaults/main.yml
@@ -11,3 +11,17 @@ sachet_listen: 127.0.0.1:9876
# provider: 'smstools'
# to:
# - '+15551234578'
+
+# sachet_usbmodeswitch:
+# "12d1:1f01": |
+# TargetVendor=0x12d1
+# TargetProductList="14db,14dc"
+# MessageContent="55534243000000000000000000000011060000000000000000000000000000"
+
+# sachet_smstools_devices:
+# GSM1:
+# init: 'AT^CURC=0'
+# device: '/dev/ttyUSB0'
+# incoming: 'yes'
+# pin: '0000'
+# baudrate: '115200'
diff --git a/roles/monitoring/sachet/filter_plugins/smstools.py b/roles/monitoring/sachet/filter_plugins/smstools.py
new file mode 100644
index 00000000..e836f8a1
--- /dev/null
+++ b/roles/monitoring/sachet/filter_plugins/smstools.py
@@ -0,0 +1,26 @@
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+from ansible import errors
+
+
+def smstools_device_options(devices):
+ try:
+ result = []
+ for device, options in devices.items():
+ for option, value in options.items():
+ result.append({'device': device, 'option': option, 'value': value})
+ return result
+ except Exception as e:
+ raise errors.AnsibleFilterError("smstools_device_options(): %s" % str(e))
+
+
+class FilterModule(object):
+
+ ''' smstools filters '''
+ filter_map = {
+ 'smstools_device_options': smstools_device_options,
+ }
+
+ def filters(self):
+ return self.filter_map
diff --git a/roles/monitoring/sachet/handlers/main.yml b/roles/monitoring/sachet/handlers/main.yml
index d150d88b..51b44f98 100644
--- a/roles/monitoring/sachet/handlers/main.yml
+++ b/roles/monitoring/sachet/handlers/main.yml
@@ -1,4 +1,9 @@
---
+- name: restart smstools
+ service:
+ name: smstools
+ state: restarted
+
- name: restart sachet
service:
name: sachet
diff --git a/roles/monitoring/sachet/tasks/smstools.yml b/roles/monitoring/sachet/tasks/smstools.yml
index 9631a3b7..1b41fadb 100644
--- a/roles/monitoring/sachet/tasks/smstools.yml
+++ b/roles/monitoring/sachet/tasks/smstools.yml
@@ -1,7 +1,9 @@
---
-- name: install smstools
+- name: install smstools and usb-modeswitch
apt:
- name: smstools
+ name:
+ - smstools
+ - usb-modeswitch
state: present
- name: add user sachet to smsd group
@@ -10,4 +12,30 @@
groups: smsd
append: yes
-## TODO: configure smstools
+- name: configure usb-modeswitch
+ when: sachet_usbmodeswitch is defined
+ loop: "{{ sachet_usbmodeswitch | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ copy:
+ content: "{{ item.value }}"
+ dest: "/etc/usb_modeswitch.d/{{ item.key }}"
+
+- name: configure smstool device list
+ ini_file:
+ path: /etc/smsd.conf
+ section: ""
+ option: devices
+ value: "{{ sachet_smstools_devices | list | join(', ') }}"
+ notify: restart smstools
+
+- name: configure smstool devices
+ loop: "{{ sachet_smstools_devices | smstools_device_options }}"
+ loop_control:
+ label: "{{ item.device }} ({{ item.option }})"
+ ini_file:
+ path: /etc/smsd.conf
+ section: "{{ item.device }}"
+ option: "{{ item.option }}"
+ value: "{{ item.value }}"
+ notify: restart smstools