blob: 033163ba32fd17621c59c3cc1f4a30b1f446a0ef [file] [log] [blame]
Wei-Yu Chen434dc4d2022-01-03 21:27:31 +08001---
2# netbox tasks/main.yml
3#
4# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
5# SPDX-License-Identifier: Apache-2.0
6
7- name: include OS-specific vars
8 include_vars: "{{ ansible_os_family }}.yml"
9
10- name: include OS-specific tasks
11 include_tasks: "{{ ansible_os_family }}.yml"
12
13- name: Create group for enodebd
14 group:
15 name: "{{ enodebd_groupname }}"
16
17- name: Create user for enodebd
18 user:
19 name: "{{ enodebd_username }}"
20 group: "{{ enodebd_groupname }}"
21 comment: "{{ enodebd_comment }}"
22 shell: "{{ enodebd_shell }}"
23 system: true
24 password_lock: true
25
26- name: Create enodebd dist dir
27 file:
28 path: "{{ enodebd_dist_dir }}"
29 state: directory
30 owner: "{{ enodebd_username }}"
31 group: "{{ enodebd_groupname }}"
32 mode: "0755"
33
34- name: Download enodebd distribution .tgz file
35 get_url:
36 url: "https://github.com/aweimeow/enodebd/archive/refs/tags/v{{ enodebd_version }}.tar.gz"
37 dest: "{{ enodebd_dist_dir }}/enodebd_v{{ enodebd_version }}.tar.gz"
38 owner: "{{ enodebd_username }}"
39 group: "{{ enodebd_groupname }}"
40 mode: "0644"
41 checksum: "{{ enodebd_version_checksum }}"
42
43- name: Unarchive enodebd distribution
44 unarchive:
45 remote_src: true
46 src: "{{ enodebd_dist_dir }}/enodebd_v{{ enodebd_version }}.tar.gz"
47 dest: "/opt"
48 owner: "{{ enodebd_username }}"
49 group: "{{ enodebd_groupname }}"
50 creates: "/opt/enodebd-{{ enodebd_version }}"
51
52- name: Link enodebd distro to working dir
53 file:
54 state: "link"
55 src: "/opt/enodebd-{{ enodebd_version }}"
56 dest: "{{ enodebd_working_dir }}"
57
58- name: Create enodebd virtual environment
59 command:
60 chdir: "{{ enodebd_working_dir }}"
61 cmd: "make venv"
62 creates: "/opt/enodebd-{{ enodebd_version }}/venv"
63
64- name: Install protobuf
65 command:
66 chdir: "{{ enodebd_working_dir }}"
67 cmd: "make install-protoc"
68 creates: "/opt/protobuf/bin/protoc"
69
70- name: Compile enodebd proto files
71 command:
72 chdir: "{{ enodebd_working_dir }}"
73 cmd: "make proto"
74 creates: "/opt/enodebd-{{ enodebd_version }}/metrics_pb2.py"
75
76- name: Create enodebd.yml configuration
77 template:
78 src: "{{ item }}.j2"
79 dest: "{{ enodebd_working_dir }}/magma_configs/enodebd.yml"
80 owner: "{{ enodebd_username }}"
81 group: "{{ enodebd_groupname }}"
82 mode: "0644"
83 force: false
84 with_items:
85 - "enodebd.yml"
86
87- name: Start enodebd
88 service:
89 name: "{{ item }}"
90 state: "started"
91 enabled: true
92 with_items:
93 - "enodebd"