一、背景
将业务系统改造为通过域名进行系统间调用,对ip地址进行屏蔽。如此解耦,方便以后进行地址变更,增加业务灵活性。
二、配置 private dns
在腾讯云Private DNS服务添加私有域rhasit.local
,并绑定到对应VPC。
三、配置VPC
在VPC配置界面,修改Domain Name
为上面设置的私有域名称rhasit.local
。
该Domain Name
,将在 Linux 加载 search domain 到 /etc/resolve.conf
文件,如下:
; generated by /usr/sbin/dhclient-script
search rhasit.local
nameserver 183.60.83.19
nameserver 183.60.82.98
四、设置服务器的resolve.conf
根据腾讯云的描述,修改完Domain Name
后需要重启服务器,或者重启dhclient。腾讯云给出的解决方案是重启服务器或者网络。
查阅资料,重启服务器或网络将会触发dhclient,重新获取dhcp信息,进而更新 /etc/resolve.conf
文件。
根据测试,将进程 dhclient
杀掉,再次执行 dhclient
可以得到一样的效果。
如下命令,可以用于实现:
killall -q dhclient ; sleep 1; { /usr/bin/pgrep -x dhclient || /usr/sbin/dhclient; }
通过ansible进行批量修改
- 测试
ansible test -m shell -a "killall -q dhclient ; sleep 1; { /usr/bin/pgrep -x dhclient || /usr/sbin/dhclient; }" -u root -k
[root@VM_99_101_centos ~]# ansible test -m shell -a "killall -q dhclient ; sleep 1; { /usr/bin/pgrep -x dhclient || /usr/sbin/dhclient; }" -u root -k
SSH password:
10.41.1.9 | CHANGED | rc=0 >>
2) 实际操作 - 结合 Dynamic Inventory Script
ansible CentOS -i cvm.py -m shell -a "killall -q dhclient ; sleep 1; { /usr/bin/pgrep -x dhclient || /usr/sbin/dhclient; }" -u root -k
[root@VM_99_101_centos ~]# ansible CentOS -i cvm.py -m shell -a "killall -q dhclient ; sleep 1; { /usr/bin/pgrep -x dhclient || /usr/sbin/dhclient; }" -u root -k
SSH password:
10.98.201. | UNREACHABLE! => {
"changed": false,
"msg": "Invalid/incorrect password: Permission denied, please try again.",
"unreachable": true
}
SIT-SFTP | CHANGED | rc=0 >>
... 略 ...
网友评论