如何使用Ansible查替换文件中的字符串
时间:2019-11-20 08:53:52 来源:igfitidea点击:
有100多个虚拟机中的sshd_config文件需要替换IP地址,如何使用Ansible实现?
如何使用Ansible替换100个服务器中的文件内容?
Ansible如何替换文件中匹配的字符串
语法如下:
- replace: path: /path/to/file regexp: 'regular expression for search' replace: 'replace-word' backup: yes
例如,将/etc/app.conf文件中的所有foo替换成bar:
- replace: path: /etc/app.conf regexp: 'foo' replace: 'bar' backup: yes
将nginx.theitroad.test替换成nginx.theitroad.com:
- replace: path: /etc/hosts regexp: '(\s+)nginx\.theitroad\.test(\s+.*)?$' replace: 'nginx.theitroad.com' backup: yes
将sshd_config中的192.168.3.1替换成192.168.2.1,然后重新加载sshd服务:
# sshd.yml - replace: dest: /etc/ssh/sshd_config regexp: '192.168.3.1' replace: '192.168.2.1' backup: yes validate: '/usr/sbin/sshd -t' - service: name: sshd state: reloaded
然后运行ansible
$ ansible-playbook -i hosts sshd.yml