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