Ansible基於playbook批量修改主機名
安裝Ansible,相信這里也不用多說,大家都知道
說一下環境:這里的主機名是修改之后的,我先把其他兩台的主機名改為別的
192.168.30.21 主機名jenkins 安裝Ansible
192.168.30.22 主機名docker
192.168.30.23 主機名repository
1.這里需要安裝Ansible需要用到阿里雲的yum倉庫
[root@jenkins]# wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2019-05-31 09:43:15-- https://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主機 mirrors.aliyun.com (mirrors.aliyun.com)... 121.22.232.218, 121.22.232.211, 221.194.147.226, ...
正在連接 mirrors.aliyun.com (mirrors.aliyun.com)|121.22.232.218|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/aliyun.repo”
100%[=========================================================>] 2,523 --.-K/s 用時 0s
2019-05-31 09:43:16 (154 MB/s) - 已保存 “/etc/yum.repos.d/aliyun.repo” [2523/2523])
[root@jenkins yum.repos.d]# yum -y clean all
[root@jenkins yum.repos.d]# yum makecache
2.安裝Ansible自動化運維工具
[root@jenkins]# yum -y install ansible
3.修改/etc/ansible/hosts文件
添加另外兩台的IP+要完成修改的主機名+端口號+用戶名+登錄密碼
[root@jenkins ~]# vim /etc/ansible/hosts
[test]
192.168.30.22 hostname=docker ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=666666
192.168.30.23 hostname=repository ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=666666
4.編寫playbook劇本
[root@jenkins ~]# vim name.yml
- hosts: test
remote_user: root
tasks:
- name: change name
raw: "echo {{hostname|quote}} > /etc/hostname"
- name:
shell: hostname {{hostname|quote}}
5.執行playbook -C 是預執行,如果沒有報錯就直接執行
[root@jenkins ~]# ansible-playbook -C name.yml
[root@jenkins ~]# ansible-playbook name.yml
PLAY [test] ***************************************************************************************
TASK [Gathering Facts] ****************************************************************************
ok: [192.168.30.23]
ok: [192.168.30.22]
TASK [change name] ********************************************************************************
changed: [192.168.30.22]
changed: [192.168.30.23]
TASK [command] ************************************************************************************
changed: [192.168.30.23]
changed: [192.168.30.22]
PLAY RECAP ****************************************************************************************
192.168.30.22 : ok=3 changed=2 unreachable=0 failed=0
192.168.30.23 : ok=3 changed=2 unreachable=0 failed=0
6.查看是否已經修改成功,沒問題,我們的主機名已經修改好了yes
[root@jenkins ~]# ansible test -m shell -a "hostname"
192.168.30.23 | SUCCESS | rc=0 >>
repository
192.168.30.22 | SUCCESS | rc=0 >>
docker