Bläddra i källkod

setup as different user

Chris Mague 8 år sedan
förälder
incheckning
fc34c8e514
3 ändrade filer med 47 tillägg och 3 borttagningar
  1. 28 2
      files/consul_cloud_setup
  2. 11 1
      tasks/binary_install.yml
  3. 8 0
      tasks/cloud_configure.yml

+ 28 - 2
files/consul_cloud_setup

@@ -3,6 +3,7 @@
 import json
 import urllib2
 import sys
+import re
 
 URL = 'http://169.254.169.254/latest/user-data'
 
@@ -12,6 +13,31 @@ except:
     print >> sys.stderr, 'Was not able to connect to the Amazon API'
     sys.exit(2)
 
-if data['consul_master'] == '127.0.0.1'
-    print 'i am the master'
+# Python doesn't like a list of 1
+tags = []
+tags.append(data['role'])
 
+consul_settings = {
+                        'data_dir': '/opt/consul/data',
+                        'client_addr': '0.0.0.0',
+                        'datacenter': data['domain'],
+                        'domain': data['domain'],
+                        'log_level': "INFO",
+                        'services': [
+                                        { 'name': data['role'], 'tags': tags, 'checks': [{'script': '/bin/true', 'interval': '2s'}] }
+                                        ]
+
+}
+
+if data['consul_master'] == '127.0.0.1':
+    consul_settings['bootstrap_expect'] = 1
+else:
+    consul_settings['retry_join'] = data['consul_master']
+
+if re.match('amitest', data['role']) is not None:
+    consul_settings['server'] = True
+    consul_settings['ui_dir'] = "/opt/consul/ui"
+
+main_config = open("/opt/consul/etc/config.json", "w")
+main_config.write(json.dumps(consul_settings))
+main_config.close()

+ 11 - 1
tasks/binary_install.yml

@@ -1,4 +1,11 @@
 ---
+- name: Consul User
+  user:
+    name: consul
+    comment: "Consul User"
+    shell: /bin/bash
+    state: present
+
 - name: Ensure Consul Download Dir exists
   file:
     path="{{cloud_consul_download_dir}}"
@@ -25,12 +32,15 @@
 - name: Ensure Consul App Dirs exist
   file: >
     path="{{cloud_consul_install_dir}}/{{item}}"
+    owner=consul
+    group=consul
     mode=0755
     state=directory
   with_items:
     - etc
     - data
     - bin
+    - logs
   tags: 
     - install
 
@@ -47,5 +57,5 @@
     path="{{cloud_consul_install_dir}}/bin/consul"
     owner=root
     group=root
-    mode=0700
+    mode=0755
     state=file

+ 8 - 0
tasks/cloud_configure.yml

@@ -7,3 +7,11 @@
     owner: root
     group: root
     mode: "0755"
+
+- name: Setup supervisor config
+  copy:
+    src: supervisord_consul
+    dest: /etc/supervisor/conf.d/consul.conf
+    owner: root
+    group: root
+    mode: "0755"