blob: e55a01860fe1d427bb0b2eba9ef2d6c2a9c91fc3 [file] [log] [blame]
# Note: When the target == "cluster" the installer
# is running to install voltha in the cluster hosts.
# Whe the target == "installer" the installer is being
# created.
- name: The environment is properly set on login
template:
src: bashrc.j2
dest: "{{ target_voltha_home }}/.bashrc"
owner: voltha
group: voltha
mode: "u=rw,g=r,o=r"
when: target == "cluster"
tags: [voltha]
- name: The .bashrc file is executed on ssh login
template:
src: bash_profile.j2
dest: "{{ target_voltha_home }}/.bash_profile"
owner: voltha
group: voltha
mode: "u=rw,g=r,o=r"
when: target == "cluster"
tags: [voltha]
- name: Required directory exists
file:
path: "{{ target_voltha_dir }}"
state: directory
owner: voltha
group: voltha
when: target == "cluster"
tags: [voltha]
- name: Required directories are copied
copy:
src: "/home/vinstall/{{ item }}"
dest: "{{ target_voltha_dir }}"
owner: voltha
group: voltha
with_items:
- compose
- nginx_config
when: target == "cluster"
tags: [voltha]
- name: Nginx module symlink is present
file:
dest: "{{ target_voltha_dir }}/nginx_config/modules"
src: ../../usr/lib/nginx/modules
state: link
follow: no
force: yes
when: target == "cluster"
tags: [voltha]
- name: Nginx statup script is executable
file:
path: "{{ target_voltha_dir }}/nginx_config/start_service.sh"
mode: 0755
when: target == "cluster"
tags: [voltha]
- name: Configuration files are on the cluster host
copy:
src: "files/consul_config"
dest: "{{ target_voltha_dir }}"
when: target == "cluster"
tags: [voltha]
- name: Docker containers for Voltha are pulled
command: docker pull {{ docker_registry }}/{{ item }}
with_items: "{{ voltha_containers }}"
when: target == "cluster"
tags: [voltha]
- name: Docker images are re-tagged to expected names
command: docker tag {{ docker_registry }}/{{ item }} {{ item }}
with_items: "{{ voltha_containers }}"
when: target == "cluster"
tags: [voltha]
#- name: Old docker image tags are removed
# command: docker rmi {{ docker_registry }}/{{ item }}
# with_items: "{{ voltha_containers }}"
# when: target == "cluster"
# tags: [voltha]
# Update the insecure registry to reflect the current installer.
# The installer name can change depending on whether test mode
# is being used or not.
- name: Enable insecure install registry
template:
src: "{{ docker_daemon_json }}"
dest: "{{ docker_daemon_json_dest }}"
register: copy_result
when: target == "installer"
tags: [voltha]
- name: Debain Daemon is reloaded
command: systemctl daemon-reload
when: copy_result|changed and is_systemd is defined and target == "installer"
tags: [voltha]
- name: Debian Docker service is restarted
service:
name: docker
state: restarted
when: copy_result|changed or user_result|changed
when: target == "installer"
tags: [voltha]
- name: Docker images are re-tagged to registry for push
command: docker tag {{ item }} {{ docker_push_registry }}/{{ item }}
with_items: "{{ voltha_containers }}"
when: target == "installer"
tags: [voltha]
- name: Docker containers for Voltha are pushed
command: docker push {{ docker_push_registry }}/{{ item }}
with_items: "{{ voltha_containers }}"
when: target == "installer"
tags: [voltha]
- name: Temporary registry push tags are removed
command: docker rmi {{ docker_push_registry }}/{{ item }}
with_items: "{{ voltha_containers }}"
when: target == "installer"
tags: [voltha]
- name: consul overlay network exists
command: docker network create --driver overlay --subnet 10.10.10.0/29 consul_net
when: target == "startup"
tags: [voltha]
- name: kafka overlay network exists
command: docker network create --driver overlay --subnet 10.10.11.0/24 kafka_net
when: target == "startup"
tags: [voltha]
- name: voltha overlay network exists
command: docker network create --driver overlay --subnet 10.10.12.0/24 voltha_net
when: target == "startup"
tags: [voltha]
- name: consul cluster is running
command: docker service create --name consul --network consul_net --network voltha_net -e 'CONSUL_BIND_INTERFACE=eth0' --mode global --publish "8300:8300" --publish "8400:8400" --publish "8500:8500" --publish "8600:8600/udp" --mount type=bind,source=/cord/incubator/voltha/consul_config,destination=/consul/config consul agent -config-dir /consul/config
when: target == "startup"
tags: [voltha]
- name: zookeeper node zk1 is running
command: docker service create --name zk1 --network kafka_net --network voltha_net -e 'ZOO_MY_ID=1' -e "ZOO_SERVERS=server.1=0.0.0.0:2888:3888 server.2=zk2:2888:3888 server.3=zk3:2888:3888" zookeeper
when: target == "startup"
tags: [voltha]
- name: zookeeper node zk2 is running
command: docker service create --name zk2 --network kafka_net --network voltha_net -e 'ZOO_MY_ID=2' -e "server.1=zk1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zk3:2888:3888" zookeeper
when: target == "startup"
tags: [voltha]
- name: zookeeper node zk3 is running
command: docker service create --name zk3 --network kafka_net --network voltha_net -e 'ZOO_MY_ID=3' -e "ZOO_SERVERS=server.1=zk1:2888:3888 server.2=zk2:2888:3888 server.3=0.0.0.0:2888:3888" zookeeper
when: target == "startup"
tags: [voltha]
- name: kafka is running
command: docker service create --name kafka --network voltha_net -e "KAFKA_ADVERTISED_PORT=9092" -e "KAFKA_ZOOKEEPER_CONNECT=zk1:2181,zk2:2181,zk3:2181" -e "KAFKA_HEAP_OPTS=-Xmx256M -Xms128M" --mode global --publish "9092:9092" wurstmeister/kafka
when: target == "startup"
tags: [voltha]
- name: voltha is running on a single host for testing
command: docker service create --name voltha_core --network voltha_net cord/voltha voltha/voltha/main.py -v --consul=consul:8500 --kafka=kafka
when: target == "startup"
tags: [voltha]