如何使用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

