Open penglongli opened 6 years ago
使用 Ansible 修改远程机器的文件内容,本节演示目的: 修改 192.168.0.66 机器上的 /etc/network/interface 文件中的网关和 DNS 为:192.168.0.1
192.168.0.66
代码:https://github.com/penglongli/ansible-sample/tree/master/sample-2
第一步 新建 inventory 文件:
$ cat inventory [server] # New client's inet ip 192.168.0.66 [server:vars] # New client's user/pass ansible_ssh_user=ubuntu ansible_ssh_pass=123456 ansible_become=true ansible_become_method=sudo ansible_become_user=root ansible_become_pass=123456
相关参数含义:
[server] 192.168.0.66 # server 组的 IP 地址,可以写成多个 ansible_ssh_user Ansible 基于 SSH 链接的用户名 ansible_ssh_pass Ansible 基于 SSH 链接的密码 ansible_become Ansible 链接到主机后是否使用 root 权限 ansible_become_user 远程主机 root 用户名 ansible_become_pass 远程主机 root 用户密码
第二步 新建 playbook.yml 文件:
$ cat mirror.yml --- - hosts: server tasks: - name: Change interface's GW lineinfile: dest: /etc/network/interfaces state: present regexp: '.*gateway.*' line: ' gateway 192.168.0.1' - name: Change interface's DNS lineinfile: dest: /etc/network/interfaces state: present regexp: '^dns-nameservers.*' line: 'dns-nameservers 192.168.0.1 114.114.114.114' - name: restart network command: systemctl restart networking
修改 /etc/network/interfaces 文件中的网关地址和 DNS 地址
关于 lineinfile 可参见文档:http://docs.ansible.com/ansible/latest/lineinfile_module.html
lineinfile
第三步 建立 ansible.cfg 文件
$ cat ansible.cfg [defaults] host_key_checking=false
第四步 执行命令
$ ansible-playbook -i inventory playbook.yml
使用 Ansible 修改远程机器的文件内容,本节演示目的: 修改
192.168.0.66
机器上的 /etc/network/interface 文件中的网关和 DNS 为:192.168.0.1代码:https://github.com/penglongli/ansible-sample/tree/master/sample-2
第一步 新建 inventory 文件:
相关参数含义:
第二步 新建 playbook.yml 文件:
修改 /etc/network/interfaces 文件中的网关地址和 DNS 地址
关于
lineinfile
可参见文档:http://docs.ansible.com/ansible/latest/lineinfile_module.html第三步 建立 ansible.cfg 文件
第四步 执行命令