ENVIRONNEMENT : aws opsworks chef 11.10 et ubuntu 14.04.
J'utilise une recette de chef pour mettre à jour les /etc/dhcp/dhclient.conf
sur un nœud aws opsworks ec2 afin d'ajouter mon suffixe de recherche dns personnalisé à la ligne de recherche dans le fichier /etc/resolv.conf
fichier.
Comment puis-je faire en sorte que ma recette redémarre le nœud UNIQUEMENT si l'option file.insert_line_if_no_match
met à jour le fichier ? Je ne veux évidemment pas que le nœud soit redémarré à chaque fois que la recette est exécutée.
Dans mon extrait de code ci-dessous la valeur de node['opsworks']['stack']['name']
est quelque chose comme a.dev.mydomain.com
.
ruby_block "add custom dns domain search suffix" do
block do
file = Chef::Util::FileEdit.new("/etc/dhcp/dhclient.conf")
file.insert_line_if_no_match("/append domain-search/", "append domain-search \"#{node['opsworks']['stack']['name']}\";")
file.write_file
end
end
L'extrait de code ci-dessus ajoute la dernière ligne à /etc/dhcp/dhclient.conf
:
# Configuration file for /sbin/dhclient, which is included in Debian's
# dhcp3-client package.
#
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.fqdn, dhcp6.sntp-servers;
append domain-search "a.dev.mydomain.com";
Après un redémarrage, le /etc/dhcp/dhclient.conf
est modifié comme suit :
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.16.0.23
search ec2.internal a.dev.mydomain.com
REMARQUE : Je pense qu'il est trop risqué d'essayer de mettre en œuvre le paramètre avec quelque chose comme une sudo dhclient -r; sudo dhclient
après la mise à jour du fichier, mais j'aimerais savoir si quelqu'un a réussi à faire fonctionner ce type de mise à jour sans redémarrage.