# 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] |