diff --git a/ansible/group_vars/all b/ansible/group_vars/all
index d1d270fa523e65f3c10a5a10ad271916431c8a99..e95c617fc3bb3b9a8e4b117d7468836226e34ea5 100644
--- a/ansible/group_vars/all
+++ b/ansible/group_vars/all
@@ -17,6 +17,11 @@
 # cheaha.node related
   hostname_lookup_table:
     - "10.141.255.254 master.cm.cluster master localmaster.cm.cluster localmaster ldapserver.cm.cluster ldapserver"
+  domain_search_list:
+    - openstack.internal
+    - cm.cluster
+  nameserver_list:
+    - 10.141.255.254
 
 # ldap_config related
   ldap_cert_path: "/etc/openldap/certs"
diff --git a/ansible/roles/cheaha.node/tasks/main.yml b/ansible/roles/cheaha.node/tasks/main.yml
index 12f098d0841e7562af1cb11d8b77a14ab6a9ac97..f5beccc54f12880316791b11f07dd91aecb22796 100644
--- a/ansible/roles/cheaha.node/tasks/main.yml
+++ b/ansible/roles/cheaha.node/tasks/main.yml
@@ -12,6 +12,15 @@
     insertbefore: BOF
     line: 'append domain-name " cm.cluster rc.uab.edu ib.cluster drac.cluster eth.cluster ib-hdr.cluster";'
 
+- name: Template resolv.conf
+  ansible.builtin.template:
+    src: resolv.conf.j2
+    dest: /etc/resolv.conf
+    owner: root
+    group: root
+    mode: 0644
+    backup: true
+
 - name: Disable SELinux
   ansible.posix.selinux:
     state: disabled
diff --git a/ansible/roles/cheaha.node/templates/resolv.conf.j2 b/ansible/roles/cheaha.node/templates/resolv.conf.j2
new file mode 100644
index 0000000000000000000000000000000000000000..be59430ed6fe3a478587a77d74ae9653c5c16f33
--- /dev/null
+++ b/ansible/roles/cheaha.node/templates/resolv.conf.j2
@@ -0,0 +1,4 @@
+search {{ domain_search_list | join(' ') }}
+{% for name_server in nameserver_list %}
+nameserver {{ name_server }}
+{% endfor %}