Browse Source

Merge pull request #745 from Shubhangi-dell/bugfix

Cron job working in non root Alpine container
John Lockman 3 years ago
parent
commit
1e00a2081f

+ 2 - 0
control_plane/roles/control_plane_device/files/Dockerfile

@@ -8,9 +8,11 @@ RUN apk add openrc
 
 #Creation of directories and files
 RUN mkdir /root/omnia
+RUN mkdir /etc/periodic/5min
 RUN touch /var/lib/dhcp/dhcpd.leases
 
 #Copy Configuration files
 COPY dhcpd.conf  /etc/dhcp/dhcpd.conf
 COPY inventory_creation.yml /root/
 COPY mngmnt_container_configure.yml /root/
+COPY cron_inv /etc/periodic/5min

+ 2 - 0
control_plane/roles/control_plane_device/files/cron_inv

@@ -0,0 +1,2 @@
+#!/bin/sh
+ansible-playbook /root/inventory_creation.yml

+ 9 - 0
control_plane/roles/control_plane_device/files/inventory_creation.yml

@@ -43,6 +43,7 @@
 
     - name: Temp result
       shell: cat /root/omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml |sort|uniq
+      changed_when: false
       register: inventory
 
     - name: Final Inventory
@@ -51,3 +52,11 @@
     - name: New line at end of file
       shell: echo "">> omnia/control_plane/roles/collect_device_info/files/mgmt_provisioned_hosts.yml
       changed_when: false
+
+    - name: Delete files
+      file:
+        path: "{{ item }}"
+        state: absent
+      with_items:
+        - "/root/temp.txt"
+        -  "/root/dynamic_hosts.yml"

+ 17 - 6
control_plane/roles/control_plane_device/files/mngmnt_container_configure.yml

@@ -20,14 +20,25 @@
   tasks:
   - name: Enable DHCP
     command: dhcpd {{ mngmnt_nic }}
-    
+    changed_when: false
+
+  - name: Start cron
+    command: crond
+    changed_when: false
+
+  - name: Add log file for cron jobs
+    command: crond -L /var/log/cron_jobs
+    changed_when: false
+
+  - name: Add cron job for 5 min
+    shell: echo "*/5    *       *       *       *       run-parts /etc/periodic/5min" >> /var/spool/cron/crontabs/root
+    changed_when: false
+
   - name: Install python-netaddr
     package:
       name: py3-netaddr
       state: present
 
-  - name: Add inventory cron job
-    cron:
-      name: Create inventory
-      minute: "*/5"
-      job: /root/inventory_creation.yml"
+  - name: Change permissions
+    command: chmod a+x /etc/periodic/5min/cron_inv
+    changed_when: false