ansible批量给多台主机修改主机名

ansible批量修改主机名

生产环境中,一个节点主机数量少有几十台,多则百余台,甚至更甚,资源前期基础环境中修改主机名是个麻烦的事情,一台台上去修改太麻烦,本文利用hosts文件中指定各个主机的主机名来实现,虽说繁琐了点,总好过一台台上去改,基本够用了;

准备两份文件:

1、ansible的hosts文件,本文使用 -i 指定hosts文件,hosts文件路径名称:/root/ansible/dfs ;

2、ansible的yaml文件,文件路径名称:/root/script/name.yaml ;

1、hosts文件,也就是ansible的主机分组,这里指定每台主机的IP地址、主机名称(hostname想要修改的主机名这里写入);

[root@luan-9-6 ~]# cat ansible/dfs 
[dfs]	#这里是ansible/dfs文件中的dfs组,里面有6台主机;
192.168.4.203 hostname=luan-CTG-DFS-1 ansible_ssh_port=22101 ansible_ssh_user=root ansible_ssh_pass="luanfpl@030"
192.168.4.204 hostname=luan-CTG-DFS-2 ansible_ssh_port=22101 ansible_ssh_user=root ansible_ssh_pass="luanfpl@030"
192.168.4.205 hostname=luan-CTG-DFS-3 ansible_ssh_port=22101 ansible_ssh_user=root ansible_ssh_pass="luanfpl@030"
192.168.4.206 hostname=luan-CTG-DFS-4 ansible_ssh_port=22101 ansible_ssh_user=root ansible_ssh_pass="luanfpl@030"
192.168.4.207 hostname=luan-CTG-DFS-5 ansible_ssh_port=22101 ansible_ssh_user=root ansible_ssh_pass="luanfpl@030"
192.168.4.208 hostname=luan-CTG-DFS-6 ansible_ssh_port=22101 ansible_ssh_user=root ansible_ssh_pass="luanfpl@030"

2、写palybook剧本,也就是yaml文件,脚本固定,修改下yaml文件中的 hosts组名 和 用户 即可直接使用;

#纯净,直接复制粘贴使用:
[root@luan-9-6 ~]# cat script/name.yaml
- hosts: dfs
  remote_user: root
  gather_facts: no
  tasks:
     - name: change name
       raw: "echo {{hostname|quote}} > /etc/hostname"
     - name:
       shell: hostname {{hostname|quote}}
 ------------------------------------------------------------------------------------------------------
#注释版
[root@luan-9-6 ~]# cat script/name.yaml 
- hosts: dfs				#这里的dfs就是ansible/dfs文件中的dfs组;
  remote_user: root			#用的用户是root;
  gather_facts: no			#在执行第一个Playbook任务时不收集目标主机的事实信息,信息包括主机名、内核版本、网卡接口、IP地址、操作系统版本、CPU、内存、磁盘等,存储在ansible_facts字典中,可以在后续的任务中被访问和使用;
  tasks:					#具体任务
     - name: Permanently change name	#任务名称
       raw: "echo {{hostname|quote}} > /etc/hostname"	#执行raw模块命令,通过导入覆盖目标主机的/etc/hostname文件实现永久修改主机名;
     - name: update name	#任务名称
       shell: hostname {{hostname|quote}}				#shell模块触发命令,实现实时修改;

3、测试执行

#1、检测yaml文件语法格式是否有误;
[root@luan-9-6 ~]# ansible-playbook --syntax-check script/name.yaml 
										#这里显示空格行,表示正确,语法格式正确,反之显示有内容则出错,需检查;
playbook: script/name.yaml

#2、-C 检测是否执行报错,不真正执行修改,正确无报错,则可以去掉-C执行;
[root@luan-9-6 ~]# ansible-playbook -C script/name.yaml -i ansible/dfs 

PLAY [dfs] *********************************************************************************************************************************************************************************

TASK [change name] *************************************************************************************************************************************************************************
skipping: [192.168.4.203]		#这里可看到,是skipping跳过,不会执行任务;
skipping: [192.168.4.204]
skipping: [192.168.4.205]
skipping: [192.168.4.206]
skipping: [192.168.4.207]
skipping: [192.168.4.208]

TASK [shell] *******************************************************************************************************************************************************************************
skipping: [192.168.4.203]
skipping: [192.168.4.205]
skipping: [192.168.4.204]
skipping: [192.168.4.206]
skipping: [192.168.4.207]
skipping: [192.168.4.208]

PLAY RECAP *********************************************************************************************************************************************************************************
192.168.4.203               : ok=0    changed=0    unreachable=0    failed=0   
192.168.4.204               : ok=0    changed=0    unreachable=0    failed=0   
192.168.4.205               : ok=0    changed=0    unreachable=0    failed=0   
192.168.4.206               : ok=0    changed=0    unreachable=0    failed=0   
192.168.4.207               : ok=0    changed=0    unreachable=0    failed=0   
192.168.4.208               : ok=0    changed=0    unreachable=0    failed=0   

[root@luan-9-6 ~]# 

#3、正式执行ansible剧本,修改主机名
[root@luan-9-6 ~]# ansible-playbook script/name.yaml -i ansible/dfs    

PLAY [dfs] *********************************************************************************************************************************************************************************

TASK [change name] *************************************************************************************************************************************************************************
changed: [192.168.4.203]
changed: [192.168.4.204]
changed: [192.168.4.205]
changed: [192.168.4.206]
changed: [192.168.4.207]
changed: [192.168.4.208]

TASK [shell] *******************************************************************************************************************************************************************************
changed: [192.168.4.203]
changed: [192.168.4.205]
changed: [192.168.4.204]
changed: [192.168.4.207]
changed: [192.168.4.206]
changed: [192.168.4.208]

PLAY RECAP *********************************************************************************************************************************************************************************
192.168.4.203               : ok=2    changed=2    unreachable=0    failed=0   
192.168.4.204               : ok=2    changed=2    unreachable=0    failed=0   
192.168.4.205               : ok=2    changed=2    unreachable=0    failed=0   
192.168.4.206               : ok=2    changed=2    unreachable=0    failed=0   
192.168.4.207               : ok=2    changed=2    unreachable=0    failed=0   
192.168.4.208               : ok=2    changed=2    unreachable=0    failed=0   

[root@luan-9-6 ~]# 
[root@luna-9-6 ~]# 

#4、验证主机名更改,可以看到已经更改完毕;
[root@luan-9-6 ~]# ansible -i ansible/dfs dfs -m shell -a "hostname"   
192.168.4.203 | SUCCESS | rc=0 >>
luan-CTG-DFS-1

192.168.4.206 | SUCCESS | rc=0 >>
luan-CTG-DFS-4

192.168.4.204 | SUCCESS | rc=0 >>
luan-CTG-DFS-2

192.168.4.205 | SUCCESS | rc=0 >>
luan-CTG-DFS-3

192.168.4.207 | SUCCESS | rc=0 >>
luan-CTG-DFS-5

192.168.4.208 | SUCCESS | rc=0 >>
luan-CTG-DFS-6

[root@luan-9-6 ~]# 
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值