Explorar el Código

Merge pull request #554 from Shubhangi-dell/infiniband

Issue #526: User must be able to set DHCP lease time according to their requirement
Lucas A. Wilson hace 3 años
padre
commit
d6bb5095ae

+ 3 - 1
control_plane/input_params/powervault_me4_vars.yml

@@ -84,6 +84,7 @@ powervault_me4_disk_partition_size: "60"
 
 # Specify the volume size
 # Format: 100GB <SizeGB>
+# Default: 100GB
 # Compulsory
 powervault_me4_volume_size: "100GB"
 
@@ -93,6 +94,7 @@ powervault_me4_volume_size: "100GB"
 powervault_me4_pool: "a"
 
 # Specify the nic of the server with which Powervault is connected.
+# Make sure nfs server also has 3 nics (for internet, OS provision and powervault connection)
 # Default value is em1.
 # Compulsory
-powervault_me4_server_nic: "em1"
+powervault_me4_server_nic: "em1"

+ 15 - 1
control_plane/roles/control_plane_common/tasks/fetch_base_inputs.yml

@@ -35,7 +35,21 @@
       host_network_nic | length < 1 or
       host_network_dhcp_start_range | length < 1 or
       host_network_dhcp_end_range | length < 1 or
-      provision_method | length < 1
+      provision_method | length < 1 or
+      default_lease_time | length < 1
+      
+- name: Validate default lease time
+  assert:
+    that:
+      - default_lease_time|int
+      - default_lease_time|int <= 31536000
+      - default_lease_time|int >= 21600
+    success_msg: "{{ success_msg_lease_time }}"
+    fail_msg: "{{ fail_msg_lease_time }}"
+
+- name: Calculate max lease time
+  set_fact:
+    max_lease_time: "{{ default_lease_time|int + 10000 }}"
 
 - name: Validate infiniband base_vars are not empty
   assert:

+ 2 - 0
control_plane/roles/control_plane_common/vars/main.yml

@@ -127,6 +127,8 @@ success_msg_different_nics_ib: "The nics of different containers and public nic
 fail_msg_different_nics_ib: "Failed. Infiniband nic cannot be the same as other nics"
 success_msg_ib: "Infiniband variables validated"
 fail_msg_ib: "Failed. Please provide all the InfiniBand related parameters in base_vars.yml"
+success_msg_lease_time: "Default lease time validated"
+fail_msg_lease_time: "Failed. Please provide a valid default lease time"
 
 # Usage: fetch_sm_inputs.yml
 ib_config_file: "{{ role_path }}/../../input_params/ib_vars.yml"

+ 3 - 3
control_plane/roles/control_plane_device/files/temp_dhcp.template

@@ -21,8 +21,8 @@ option pxe-system-type code 93 = unsigned integer 16;
 subnet subnet_mask netmask net_mask {
 option subnet-mask net_mask;
 range dynamic-bootp start end;
-default-lease-time  21600;
-max-lease-time  43200;
+default-lease-time default;
+max-lease-time max;
 next-server next_server;
 #insert the static DHCP leases for configuration here
 
@@ -44,4 +44,4 @@ next-server next_server;
 
 }
 
-#end for
+#end for

+ 12 - 0
control_plane/roles/control_plane_device/tasks/dhcp_configure.yml

@@ -39,6 +39,18 @@
     regexp: '^range dynamic-bootp start end;'
     replace: 'range dynamic-bootp {{ mngmnt_network_dhcp_start_range }} {{ mngmnt_network_dhcp_end_range }};'
 
+- name: Assign default lease time
+  replace:
+    path: "{{ role_path }}/files/dhcpd.conf"
+    regexp: '^default-lease-time default;'
+    replace: 'default-lease-time {{ default_lease_time }};'
+    
+- name: Assign max lease time
+  replace:
+    path: "{{ role_path }}/files/dhcpd.conf"
+    regexp: '^max-lease-time max;'
+    replace: 'max-lease-time {{ max_lease_time }};'
+
 - name: Assign next server range
   replace:
     path: "{{ role_path }}/files/dhcpd.conf"

+ 2 - 2
control_plane/roles/control_plane_ib/files/temp_dhcp.template

@@ -22,8 +22,8 @@ option pxe-system-type code 93 = unsigned integer 16;
 subnet subnet_mask netmask net_mask {
 option subnet-mask net_mask;
 range dynamic-bootp start end;
-default-lease-time 26100;
-max-lease-time 43200;
+default-lease-time default;
+max-lease-time max;
 next-server next_server;
 #insert the static DHCP leases for configuration here
 

+ 13 - 1
control_plane/roles/control_plane_ib/tasks/dhcp_configure.yml

@@ -39,8 +39,20 @@
     regexp: '^range dynamic-bootp start end;'
     replace: 'range dynamic-bootp {{ ib_network_dhcp_start_range }} {{ ib_network_dhcp_end_range }};'
 
+- name: Assign default lease time
+  replace:
+    path: "{{ role_path }}/files/dhcpd.conf"
+    regexp: '^default-lease-time default;'
+    replace: 'default-lease-time {{ default_lease_time }};'
+
+- name: Assign max lease time
+  replace:
+    path: "{{ role_path }}/files/dhcpd.conf"
+    regexp: '^max-lease-time max;'
+    replace: 'max-lease-time {{ max_lease_time }};'
+
 - name: Assign next server range
   replace:
     path: "{{ role_path }}/files/dhcpd.conf"
     regexp: '^next-server next_server;'
-    replace: 'next-server {{ ib_ip }};'
+    replace: 'next-server {{ ib_ip }};'

+ 3 - 4
control_plane/roles/provision_cobbler/files/menu.yml

@@ -1,8 +1,7 @@
 DEFAULT menu
 PROMPT 0
-MENU TITLE Cobbler | https://cobbler.github.io
-TIMEOUT 2
+MENU TITLE Cobbler OS provisioning | https://cobbler.github.io
+TIMEOUT 3
 TOTALTIMEOUT 5
 $pxe_menu_items
-
-MENU end
+MENU end

+ 3 - 3
control_plane/roles/provision_cobbler/files/temp_dhcp.template

@@ -23,8 +23,8 @@ option system-arch code 93 = unsigned integer 16;
 subnet subnet_mask netmask net_mask {
 option subnet-mask net_mask;
 range dynamic-bootp start end;
-default-lease-time 2160000;
-max-lease-time 4320000;
+default-lease-time default;
+max-lease-time max;
 next-server $next_server;
 #insert the static DHCP leases for configuration here
 
@@ -144,4 +144,4 @@ next-server $next_server;
         }
     #end for
 }
-#end for
+#end for

+ 13 - 1
control_plane/roles/provision_cobbler/tasks/dhcp_configure.yml

@@ -32,6 +32,18 @@
     path: "{{ role_path }}/files/dhcp.template"
     regexp: '^option subnet-mask net_mask;'
     replace: 'option subnet-mask {{ netmask }};'
+    
+- name: Assign default lease time
+  replace:
+    path: "{{ role_path }}/files/dhcp.template"
+    regexp: '^default-lease-time default;'
+    replace: 'default-lease-time {{ default_lease_time }};'
+
+- name: Assign max lease time
+  replace:
+    path: "{{ role_path }}/files/dhcp.template"
+    regexp: '^max-lease-time max;'
+    replace: 'max-lease-time {{ max_lease_time }};'
 
 - name: Assign DHCP range
   replace:
@@ -56,4 +68,4 @@
   replace:
     path: "{{ role_path }}/files/settings.yaml"
     regexp: '^next_server: 127.0.0.1'
-    replace: 'next_server: {{ hpc_ip }}'
+    replace: 'next_server: {{ hpc_ip }}'