lineinfile模块使用记录

2020-08-07  本文已影响0人  wowshiwoniu

lineinfile模块使用记录

在日常操作中,对于文件的操作,是比较频繁的。lineinfile就是针对文本操作的一个强大的模块。

通过ansible的lineinfile模块处理系统dns问题

最近集群内新增了一批ubuntu 18.04 的机器,默认dns使用的是机器内部的,需要调整为内部的dns。默认是systemd-resolved管理的,/etc/resolv.conf文件是一个软链,单独修改无效,这里需要进行处理。同时修改 /etc/nsswitch.conf文件,否则dns无法生效。这里使用了ansible来进行批量操作。

---
- hosts: all
  become_user: root
  become: yes
  gather_facts: no

  tasks:

   - name: echo resolve
     shell: |
       systemctl stop systemd-resolved
       systemctl disable systemd-resolved
       rm /etc/resolv.conf
       echo "nameserver 114.114.114.114" > /etc/resolv.conf

   - name: update /etc/nsswitch.conf
     lineinfile:
       path: /etc/nsswitch.conf
       regexp: "^hosts(.*)$"
       line: "hosts:          files dns"
       state: present

   - name: install ifconfig
     shell: |
       apt install net-tools -y

上面的修改在机器重启之前,一直很正常,但是有一天机器重启后,返现dns被置为系统默认的了,查看/etc/resolv.conf文件,默认被NetworkManager重置了。

---
- hosts: all
  become_user: root
  become: yes
  gather_facts: no

  tasks:

   - name: lineinfile change
     lineinfile:
       dest: /etc/NetworkManager/NetworkManager.conf
       insertafter: '^plugins'
       line: "dns=none"

参考链接:https://www.cnblogs.com/breezey/p/9297252.html

上一篇下一篇

猜你喜欢

热点阅读