Initial commit to edgemonagent

Change-Id: I18d6c27ffb45f835d93bd8c2ec308a824029a707
diff --git a/tasks/Debian.yml b/tasks/Debian.yml
new file mode 100644
index 0000000..c37b6cd
--- /dev/null
+++ b/tasks/Debian.yml
@@ -0,0 +1,36 @@
+---
+# edgemonagent tasks/Debian.yml
+#
+# SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Install edge-mon-agent prerequsites
+  apt:
+    name:
+      - "python3"
+      - "python3-serial"
+      - "python3-requests"
+    state: "present"
+    update_cache: true
+    cache_valid_time: 3600
+
+- name: Create environment config for edge-mon-agent service
+  template:
+    src: "default.edge-mon-agent.j2"
+    dest: "/etc/default/edge-mon-agent"
+    owner: "root"
+    group: "root"
+    mode: "0640"
+  notify:
+    - restart-edgemonagent
+
+- name: Create systemd service unit files for edge-mon-agent service
+  template:
+    src: "edge-mon-agent.service.j2"
+    dest: "/etc/systemd/system/edge-mon-agent.service"
+    owner: "root"
+    group: "root"
+    mode: "0644"
+  notify:
+    - start-edgemonagent
+    - restart-edgemonagent
diff --git a/tasks/main.yml b/tasks/main.yml
new file mode 100644
index 0000000..cb5ca14
--- /dev/null
+++ b/tasks/main.yml
@@ -0,0 +1,50 @@
+---
+# edgemonagent tasks/main.yml
+#
+# SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+# possibly check for
+
+- name: include OS-specific vars
+  include_vars: "{{ ansible_os_family }}.yml"
+
+- name: include OS-specific tasks
+  include_tasks: "{{ ansible_os_family }}.yml"
+
+- name: Create group for edgemonagent
+  group:
+    name: "{{ edgemonagent_groupname }}"
+
+- name: Create user for edgemonagent
+  user:
+    name: "{{ edgemonagent_username }}"
+    group: "{{ edgemonagent_groupname }}"
+    comment: "{{ edgemonagent_comment }}"
+    shell: "{{ edgemonagent_shell }}"
+    home: "{{ edgemonagent_dir }}"
+    create_home: no  # yamllint disable-line rule:truthy
+    system: true
+    password_lock: true
+
+- name: Add edgemonagent user to group that grants serial port access
+  user:
+    name: "{{ edgemonagent_username }}"
+    groups: "{{ edgemonagent_serial_group }}"
+    append: true
+
+- name: Create directory for edgemonagent
+  file:
+    path: "{{ edgemonagent_dir }}"
+    state: directory
+    owner: "{{ edgemonagent_username }}"
+    group: "{{ edgemonagent_groupname }}"
+    mode: "0755"
+
+- name: Copy over edgemonagent script
+  copy:
+    src: "edge_monitoring_agent_modem.py"
+    dest: "{{ edgemonagent_dir }}/edge_monitoring_agent_modem.py"
+    owner: "{{ edgemonagent_username }}"
+    group: "{{ edgemonagent_groupname }}"
+    mode: "0755"