让设备名称为eth0
[root@server1 ~]# cat /boot/grub2/grubenv
# GRUB Environment Block
saved_entry=40c5bdc74c674579b28e5f7d5516dcc0-4.18.0-193.el8.x86_64
kernelopts=root=/dev/mapper/rhel-root ro resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet net.ifnames=0 ------>
boot_success=0
—>设置完毕后重启
[root@server1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
ansible主机用户中做好加密(ssh-keygen),将密钥给受控主机的remote_user
#!/bin/bash
for host in {
1..3}
do
ssh-copy-id -i /home/lee/.ssh/id_rsa.pub lee@192.168.3.$host
done
注意:如果脚本执行不成功,很有可能是因为受控主机里面的.ssh文件的影响,可以提前删掉受控主机的.ssh文件(因为ssh命令远程连接时yes后建立认证文件,后自动生成~/.ssh/kown_hosts记录文件,而每一次的认证后.ssh文件内容是不同的)
.sudo node{
1..3} westos ALL=(ALL) NOPASSWD: ALL
在受控主机(ansible清单里的所有主机)中提前做好sudo,以超级用户的身份在主机中进行操作
#! /bin/bash
for host in {
1..2}
do
ssh root@192.168.3.$host 'sed -e “100a lee `hostname`=(ALL) NOPASSWD: ALL" /etc/sudoers'
done
一、ansible实现管理的方式
- Ad-Hoc:利用ansible命令直接完成管理,主要用于临时命令使用场景
- playbook:ansible脚本,主要用于大型项目场景,需要前期的规划
二、Ad-Hoc执行方式中如何获得帮助
ansible-doc
:显示模块帮助的指令
格式:ansible-doc [参数] [模块…]
-l 列出可用模块
-s 显示指定模块的playbook片段
三、ansible命令运行方式及常用参数
格式:ansible 清单 -m 模块 -a 模块参数
常用参数
--version #显示版本
-m module #指定模块,默认为command模块
-v #详细过程 -vv -vvv更详细过程
--list #显示主机列表,也可以用--list-hosts
-k #提示输入ssh连接密码,默认key认证
-C #预执行检测
-T #执行命令的超时时间,默认10s
-u #指定远程执行的用户
-b #执行sudo切换身份操作
-become-user=USERNAME #指定sudo的用户
-K #提示输入sudo密码
四、ansible的基本颜色代表信息
绿色 #执行成功但未对远程主机做任何改变
黄色 #执行成功并对远程主机做改变
红色 #执行失败
五、ansible中的常用模块
1.command
功能: 在远程主机执行命令,此模块为默认模块