diff options
Diffstat (limited to 'opt/infra')
25 files changed, 237 insertions, 0 deletions
diff --git a/opt/infra/ansible.cfg b/opt/infra/ansible.cfg new file mode 100644 index 00000000..93022c4e --- /dev/null +++ b/opt/infra/ansible.cfg @@ -0,0 +1,3 @@ +[defaults] +hostfile = inventory +host_key_checking = False
\ No newline at end of file diff --git a/opt/infra/inventory b/opt/infra/inventory new file mode 100644 index 00000000..1ba1dc45 --- /dev/null +++ b/opt/infra/inventory @@ -0,0 +1,4 @@ +table ansible_host=table.qtip.io # 1vCPU/1024MB/100Mbps/40GB (Aliyun Hongkong B) + +[testing] +table diff --git a/opt/infra/roles/docker/handlers/main.yml b/opt/infra/roles/docker/handlers/main.yml new file mode 100644 index 00000000..985f8d41 --- /dev/null +++ b/opt/infra/roles/docker/handlers/main.yml @@ -0,0 +1,4 @@ +--- +- name: starting docker service + become: true + service: name=docker state=started diff --git a/opt/infra/roles/docker/tasks/main.yml b/opt/infra/roles/docker/tasks/main.yml new file mode 100644 index 00000000..1cf3bea0 --- /dev/null +++ b/opt/infra/roles/docker/tasks/main.yml @@ -0,0 +1,41 @@ +- name: adding keys + become: true + apt_key: keyserver=hkp://p80.pool.sks-keyservers.net id=0X58118E89F3A912897C070ADBF76221572C52609D + +- name: adding entry for ubuntu + become: true + apt_repository: repo='deb https://apt.dockerproject.org/repo ubuntu-xenial main' state=present filename='docker' + when: ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04" + +- name: installing from docker repo + become: true + shell: apt-cache policy docker-engine + when: ansible_distribution == "Ubuntu" and ansible_distribution_version== "16.04" + +- name: adding entry for ubuntu + become: true + apt_repository: repo='deb https://apt.dockerproject.org/repo ubuntu-trusty main' state=present filename='docker' + when: ansible_distribution == "Ubuntu" and ansible_distribution_version == "14.04" + +- name: updating + become: true + apt: update_cache=yes + +- name: installing docker engine + become: true + apt: name=docker-engine + notify: + - starting docker service + +- name: install pip + become: true + apt: name={{item}} state=installed + with_items: + - python-dev + - python-pip + +- name: install docker-py + become: true + pip: + name: docker-py + version: 1.7.0 diff --git a/opt/infra/roles/elk/tasks/main.yml b/opt/infra/roles/elk/tasks/main.yml new file mode 100644 index 00000000..ed987f1a --- /dev/null +++ b/opt/infra/roles/elk/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: pulling elasticsearch and kibana + become: true + docker_image: name={{ item }} state=present + with_items: + - elasticsearch + - kibana + +- name: setting up elasticsearch + become: true + docker_container: + name: esearch + image: elasticsearch + published_ports: 9200:9200 + +- name: setting up kibana + become: true + docker_container: + name: kibana + image: kibana + published_ports: 5601:5601 + links: esearch:elasticsearch diff --git a/opt/infra/roles/mongo/tasks/main.yml b/opt/infra/roles/mongo/tasks/main.yml new file mode 100644 index 00000000..81fb49b5 --- /dev/null +++ b/opt/infra/roles/mongo/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- name: pulling mongo + become: true + docker_image: name=mongo:3.2.1 state=present + +- name: setting up mongo + become: true + docker_container: + name: mongo + image: mongo:3.2.1 diff --git a/opt/infra/roles/nginx/defaults/main.yml b/opt/infra/roles/nginx/defaults/main.yml new file mode 100644 index 00000000..cdd1d773 --- /dev/null +++ b/opt/infra/roles/nginx/defaults/main.yml @@ -0,0 +1,10 @@ +--- +services: + - { name: kibana, upstream: 'http://127.0.0.1:5601' } + - { name: elastic, upstream: 'http://127.0.0.1:9200' } + +qtip_services: + - { name: restful_api, upstream: 'http://127.0.0.1:5000' } + +testapi_services: + - { name: testapi, upstream: 'http://127.0.0.1:8000' } diff --git a/opt/infra/roles/nginx/handlers/main.yml b/opt/infra/roles/nginx/handlers/main.yml new file mode 100644 index 00000000..35585363 --- /dev/null +++ b/opt/infra/roles/nginx/handlers/main.yml @@ -0,0 +1,4 @@ +--- +- name: restart nginx + become: true + service: name=nginx state=restarted diff --git a/opt/infra/roles/nginx/tasks/main.yml b/opt/infra/roles/nginx/tasks/main.yml new file mode 100644 index 00000000..5c78166c --- /dev/null +++ b/opt/infra/roles/nginx/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: nginx is installed + become: true + package: name=nginx state=present +- name: qtip server configuration is generated + become: true + template: src={{ item }}.conf.j2 dest=/etc/nginx/sites-enabled/{{ item }}.conf + with_items: + - elk + - qtip + - testapi + notify: + - restart nginx diff --git a/opt/infra/roles/nginx/templates/elk.conf.j2 b/opt/infra/roles/nginx/templates/elk.conf.j2 new file mode 100644 index 00000000..271690e0 --- /dev/null +++ b/opt/infra/roles/nginx/templates/elk.conf.j2 @@ -0,0 +1,14 @@ +# {{ ansible_managed }} + +# servers +# +{% for service in services %} +server { + listen 80; + listen 443 ssl; + server_name {{ service.name }}.qtip.openzero.net; + location / { + proxy_pass {{ service.upstream }}; + } +} +{% endfor %} diff --git a/opt/infra/roles/nginx/templates/qtip.conf.j2 b/opt/infra/roles/nginx/templates/qtip.conf.j2 new file mode 100644 index 00000000..3a15c6ba --- /dev/null +++ b/opt/infra/roles/nginx/templates/qtip.conf.j2 @@ -0,0 +1,17 @@ +# {{ ansible_managed }} + +# servers +# +{% for service in qtip_services %} +server { + listen 80; + listen 443 ssl; + server_name {{ service.name }}.qtip.openzero.net; + location / { + proxy_pass {{ service.upstream }}; + sub_filter {{ service.upstream }} 'http://{{ service.name }}.qtip.openzero.net'; + sub_filter_once off; + sub_filter_types text/html application/json; + } +} +{% endfor %} diff --git a/opt/infra/roles/nginx/templates/testapi.conf.j2 b/opt/infra/roles/nginx/templates/testapi.conf.j2 new file mode 100644 index 00000000..6a4d388b --- /dev/null +++ b/opt/infra/roles/nginx/templates/testapi.conf.j2 @@ -0,0 +1,17 @@ +# {{ ansible_managed }} + +# servers +# +{% for service in testapi_services %} +server { + listen 80; + listen 443 ssl; + server_name {{ service.name }}.qtip.openzero.net; + location / { + proxy_pass {{ service.upstream }}; + sub_filter {{ service.upstream }} 'http://{{ service.name }}.qtip.openzero.net'; + sub_filter_once off; + sub_filter_types text/html application/json; + } +} +{% endfor %} diff --git a/opt/infra/roles/qtip/files/run_qtip_server.sh b/opt/infra/roles/qtip/files/run_qtip_server.sh new file mode 100644 index 00000000..0f5cafea --- /dev/null +++ b/opt/infra/roles/qtip/files/run_qtip_server.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +envs="INSTALLER_TYPE=fuel -e INSTALLER_IP=10.20.0.2 -e NODE_NAME=zte-pod1" +docker run --name qtip -id -e $envs -p 5000:5000 opnfv/qtip diff --git a/opt/infra/roles/qtip/tasks/main.yml b/opt/infra/roles/qtip/tasks/main.yml new file mode 100644 index 00000000..b8292791 --- /dev/null +++ b/opt/infra/roles/qtip/tasks/main.yml @@ -0,0 +1,5 @@ +--- +# TODO:change the script to docker_container. +- name: setting up qtip + become: true + script: ../files/run_qtip_server.sh diff --git a/opt/infra/roles/testapi/files/run_testapi.sh b/opt/infra/roles/testapi/files/run_testapi.sh new file mode 100644 index 00000000..f9ba8387 --- /dev/null +++ b/opt/infra/roles/testapi/files/run_testapi.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +envs="mongodb_url=mongodb://mongo:27017/ -e api_port=8000 -e swagger_url=http://testapi.qtip.openzero.net" +docker run --name testapi --link mongo:mongo -p 8000:8000 -e $envs -d opnfv/testapi diff --git a/opt/infra/roles/testapi/tasks/main.yml b/opt/infra/roles/testapi/tasks/main.yml new file mode 100644 index 00000000..8ca91396 --- /dev/null +++ b/opt/infra/roles/testapi/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- name: setting up testapi + become: true + script: ../files/run_testapi.sh diff --git a/opt/infra/roles/user/defaults/main.yml b/opt/infra/roles/user/defaults/main.yml new file mode 100644 index 00000000..ef496dd4 --- /dev/null +++ b/opt/infra/roles/user/defaults/main.yml @@ -0,0 +1,7 @@ +--- +users: + - { name: yujunz, comment: "Yujun Zhang <zhang.yujunz@zte.com.cn>" } + - { name: taseer, comment: "Taseer Ahmed <taseer94@gmail.com>" } + - { name: serena, comment: "Serena Feng <feng.xiaowei@zte.com.cn>" } + - { name: zhifeng, comment: "Zhifeng Jiang<jiang.zhifeng@zte.com.cn>" } + - { name: akhil, comment: "Akhil Batra<akhil.batra@research.iiit.ac.in"} diff --git a/opt/infra/roles/user/files/akhil.authorized_keys b/opt/infra/roles/user/files/akhil.authorized_keys new file mode 100644 index 00000000..43942621 --- /dev/null +++ b/opt/infra/roles/user/files/akhil.authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJ2zxPZ6gu19QhXlzCdZQjiRIXnzE0Tp2+7LL5hBbl39+dohPwKlSvXzlI9n3MpeDUBkEwUzcS/P4McbTYOU74nOb5vBoNhgayZIebG3gM5cgLwRVD219oOT6mBGNSgfuc54KvmDgIOX4p8o8TLFq+0Qv4YQXcj3uprAR3p5e9NDAfKX8k27M4Ba9Goqorda/0CguAT6b+MdWen554N9PJLWQwtN1Nm4CMf7R9QcDOQEwOXhoZoN+/xmgqQummoo+17IYaAslQhb3Cx16hy2JA8QhZa6k+KnAUvh9GHxGSZpex7w6jyDez5KngROQvIiLfjYkqlgD3O8CDfhrjccZ5 akhil.batra@research.iiit.ac.in diff --git a/opt/infra/roles/user/files/serena.authorized_keys b/opt/infra/roles/user/files/serena.authorized_keys new file mode 100644 index 00000000..5cdbfe00 --- /dev/null +++ b/opt/infra/roles/user/files/serena.authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYlLrMOPxwLNQvLpxXVLYXQCxNkaKfVWt7u9k+6T0SU7VNuT8e1VoTk6b/iVWyXQ4j1hW4sNroTucqZjl+8V2z2nYgpEMIy6jBuehlKP2LJ9v/p98/OBVVxgEnRJGzFYIeO/GKBLMaUu43OkCO2Ef67qKeISeNP5/ewUR12YCUHQg5GkGYnDL3fFd7SiVDkYPEXQvHfi85beGOuPwDTjbKoKbF9WATIIzJSPUmslGjFRpKqM8AQLGWEyTeklU7H4ddRqaKxe6DGbpTLJM2rCMF8W91097nmiOKEnuxi6vJKTmyX81BZXi48ugCRh3942ONYRH8W7dBegrvRY3kyAtH root@gsmdev-VirtualBox diff --git a/opt/infra/roles/user/files/sudoers.d-qtip b/opt/infra/roles/user/files/sudoers.d-qtip new file mode 100644 index 00000000..e96d278a --- /dev/null +++ b/opt/infra/roles/user/files/sudoers.d-qtip @@ -0,0 +1,2 @@ +# Group rules for qtip-contributors +%qtip ALL=(ALL) NOPASSWD:ALL diff --git a/opt/infra/roles/user/files/taseer.authorized_keys b/opt/infra/roles/user/files/taseer.authorized_keys new file mode 100644 index 00000000..2efb95e8 --- /dev/null +++ b/opt/infra/roles/user/files/taseer.authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCxCG9Z+8rBLQiJ9yt+RzRkAZZQIlou83e899Kkuf/UgXd+1TUgIu4AJUDvayrorTxk2kw7ra+DoysEa2NBkLL6FNnG+NpYV+XTaG+Z3tvp4l62ROV+5+O4soiWtBroRghQPDkrpiTQuFJ7/BKQt9bKZYPb3t2bxCLeFVWtUzCpFDIj6wDPGwDeTLnLMPtQNQtIlgPV+XGAet17rNSrm7EcDzqdDQcdZFmfeH5YvBsY9ZO+qwcbelEpMBWPsyEMU6OgwTqUj7mm3o+Quew35y13Zrhf+GAx5ZMXho/Cpjp1TzognDkwAFpFzZG7zWSNexXrD15Wzgyae2cl/vD75I7 taseer@123.org
\ No newline at end of file diff --git a/opt/infra/roles/user/files/yujunz.authorized_keys b/opt/infra/roles/user/files/yujunz.authorized_keys new file mode 100644 index 00000000..83ed540d --- /dev/null +++ b/opt/infra/roles/user/files/yujunz.authorized_keys @@ -0,0 +1,3 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0o+WARhbI5DeZK9eiZKVprY3oQ910npo/EPFI9prfpN7zeF0UA4TwT9rqsrwFgRQeJkKvbDTOPt5Ox9vLIEnxT4PdirvrYNxtyJHHfbL4ZxKemYhBi2BA6CAbI3f9CR+dtbfOBxtTpXAj1Y5oA9y59o1hqHpuVmM8dBpcQt/ELdYCHZ0khxft5WaSOURsslTZN18bikVX9WHlKflVyRA8efxqzTZ4w5ufHl1Fv9i/G0u7iGbUtvlI8X7+Z+ePuysZhHKErQSGfv2NybDi+r8xM5hL2LYXxjAu0PV58olUl1SX40OY9yA2Yx+PVzIGhv6EQ8snUFnsoMy0ZIbQ+ysB yujunz@silver.mbp +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDs9VhmmGg0c7FTLMtoZlPue4N1DdSCh6r6YssmEY3e1GHPXJTGGTX7QKXEBlWd7EXq+uedwN+lU9C/FClwneP0M+4vprgqdmUcmlCoSI/RffQAymcuGbxvfptNcLpBApHn4C+e93H/5ryaypaG+6n8WtbDZDtvWgn2ZJY6hDdJSw6Y++C+zDI0QliTsrCHmnGnYcRuDWUNgaiERvW3cvpeF5duFJcDZ0NtMl2UjeGMYL0JU6YfIOIeeFwD0Su86Nf3RtoKF+RzO4LcrGLvywzM7C/iCncIdj6GZjpVBYnB5U6YUh8VqLjHVHjmjTpAjmsWcc8NnwNG9rHDbG6nrGWd yujunz@silver + diff --git a/opt/infra/roles/user/files/zhifeng.authorized_keys b/opt/infra/roles/user/files/zhifeng.authorized_keys new file mode 100644 index 00000000..195cfdca --- /dev/null +++ b/opt/infra/roles/user/files/zhifeng.authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuck9a5uUXLtzlTaCYhwcLDffFH8o5ldhU4iKr0D4KaXlFfUsKD7VyHN+Zck3HBWTB4U7X9FEeFINtp2v2aoY8n74TS4LUGT8yqRYLyvsh2LgrhE4ouRvYgWlrZGice2x6ZZrcGM4uoGTC/lUHEvMDGDkDxUCfhxlFWcrplCUMcgd1V/5U14s0ufDgLGyEhXWWXFW4pNoqKBEGZNChBSvnq+NvOD7I4jgStUm9REooOp/VPpubH/6mSvDSTokCvrgWSCaNpcDqLCUjhwpoT/D1oFzEd4jBfPSV3jva+eAKPE2r/dnudQR5NR8T/eUz25YRGeJfrjDP6cMgXJoG43IXQ== root@fuel.domain.tld diff --git a/opt/infra/roles/user/tasks/main.yml b/opt/infra/roles/user/tasks/main.yml new file mode 100644 index 00000000..b1b5be9b --- /dev/null +++ b/opt/infra/roles/user/tasks/main.yml @@ -0,0 +1,35 @@ +- name: add group qtip + become: true + group: name=qtip state=present +- name: add qtip to sudoers without password + become: true + file: + src: sudoers.d-qtip + dest: /etc/sudoers.d/50-qtip + mode: 0440 +- name: add users for ssh access + become: true + user: + name: "{{ item.name }}" + comment: "{{ item.comment }}" + groups: "qtip" + append: yes + with_items: "{{ users }}" +- name: create .ssh directory + become: true + file: + path: "/home/{{ item.name }}/.ssh" + state: directory + owner: "{{ item.name }}" + group: "{{ item.name }}" + mode: 0700 + with_items: "{{ users }}" +- name: authorize public key + become: true + copy: + src: "{{ item.name }}.authorized_keys" + dest: "/home/{{ item.name }}/.ssh/authorized_keys" + owner: "{{ item.name }}" + group: "{{ item.name }}" + mode: 0600 + with_items: "{{ users }}" diff --git a/opt/infra/test.yml b/opt/infra/test.yml new file mode 100644 index 00000000..ee3ded13 --- /dev/null +++ b/opt/infra/test.yml @@ -0,0 +1,10 @@ +--- +- hosts: testing + roles: + - user + - docker + - elk + - mongo + - nginx + - qtip + - testapi |