support deploying etcd on aarch64 platform
[stor4nfv.git] / ci / ansible / roles / osdsdb / scenarios / etcd_aarch64.yml
diff --git a/ci/ansible/roles/osdsdb/scenarios/etcd_aarch64.yml b/ci/ansible/roles/osdsdb/scenarios/etcd_aarch64.yml
new file mode 100644 (file)
index 0000000..f3600d8
--- /dev/null
@@ -0,0 +1,39 @@
+---
+- name: check for etcd existed
+  stat:
+    path: "{{ etcd_dir }}/etcd"
+  ignore_errors: yes
+  register: etcdexisted
+
+- name: download etcd
+  get_url:
+    url={{ etcd_download_url }}
+    dest=/opt/{{ etcd_tarball }}
+  when:
+    - etcdexisted.stat.exists is undefined or etcdexisted.stat.exists == false
+
+- name: extract the etcd tarball
+  unarchive:
+    src=/opt/{{ etcd_tarball }}
+    dest=/opt/
+  when:
+    - etcdexisted.stat.exists is undefined or etcdexisted.stat.exists == false
+
+- name: Check if etcd is running
+  shell: ps aux | grep etcd | grep -v grep
+  ignore_errors: true
+  register: service_etcd_status
+
+- name: run etcd daemon service
+  shell: ETCD_UNSUPPORTED_ARCH=arm64 nohup ./etcd --advertise-client-urls http://{{ etcd_host }}:{{ etcd_port }} --listen-client-urls http://{{ etcd_host }}:{{ etcd_port }} -listen-peer-urls http://{{ etcd_host }}:{{ etcd_peer_port }} &>>etcd.log &
+  become: true
+  args:
+    chdir: "{{ etcd_dir }}"
+  when: service_etcd_status.rc != 0
+
+- name: check etcd cluster health
+  shell: ./etcdctl --endpoints http://{{ etcd_host }}:{{ etcd_port }} cluster-health
+  become: true
+  ignore_errors: true
+  args:
+    chdir: "{{ etcd_dir }}"