ansible模块
yum_repository
用于配置yum
常用选项:
-
file: 指定文件名
-
其他选项,请与文件内容对照
# 在test组中的主机上,配置yum
[root@control ansible]# ansible test -m yum_repository -a "file=myrepo name=myApp description='My App' baseurl=ftp://192.168.88.240/rhel8/AppStream gpgcheck=no enabled=yes"
[root@node1 ~]# cat /etc/yum.repos.d/myrepo.repo
[myApp]
baseurl = ftp://192.168.88.240/rhel8/AppStream
enabled = 1
gpgcheck = 0
name = My App
[root@control ansible]# ansible test -m yum_repository -a "file=myrepo name=BaseOS description='Base OS' baseurl=ftp://192.168.88.240/rhel8/BaseOS gpgcheck=no enabled=yes"
[root@node1 ~]# cat /etc/yum.repos.d/myrepo.repo
[myApp]
baseurl = ftp://192.168.88.240/rhel8/AppStream
enabled = 1
gpgcheck = 0
name = My App
[BaseOS]
baseurl = ftp://192.168.88.240/rhel8/BaseOS
enabled = 1
gpgcheck = 0
name = Base OS
yum模块
-
用于rpm软件包管理,如安装、升级、卸载
-
常用选项:
-
name:包名
-
state:状态。present表示安装,如果已安装则忽略;latest表示安装或升级到最新版本;absent表示卸载。
-
# 在test组中的主机上安装tar
[root@control ansible]# ansible test -m yum -a "name=tar state=present"
# 在test组中的主机上安装wget、net-tools
[root@control ansible]# ansible test -m yum -a "name=wget,net-tools"
# 在test组中的主机上卸载wget
[root@control ansible]# ansible test -m yum -a "name=wget state=absent"
service模块
-
用于控制服务。启动、关闭、重启、开机自启。
-
常用选项:
-
name:控制的服务名
-
state:started表示启动;stopped表示关闭;restarted表示重启
-
enabled:yes表示设置开机自启;no表示设置开机不要自启。
-
# 在test主机上安装httpd
[root@control ansible]# ansible test -m yum -a "name=httpd state=latest"
# 在test主机上启动httpd,并设置它开机自启
[root@control ansible]# ansible test -m service -a "name=httpd state=started enabled=yes"
逻辑卷相关模块
-
逻辑卷可以动态管理存储空间。可以对逻辑卷进行扩容或缩减。
-
可以把硬盘或分区转换成物理卷PV;再把1到多个PV组合成卷组VG;然后在VG上划分逻辑卷LV。LV可以像普通分区一样,进行格式化、挂载。
-
关闭虚拟机node1,为其添加2块20GB的硬盘
-
LINUX下KVM虚拟机新加的硬盘,名称是
/dev/vdb
和/dev/vdc
-
vmware虚拟机新加的硬盘,名称是
/dev/sdb
和/dev/sdc
-
如果选nvme硬盘,名称可能是
/dev/nvme0n1
和/dev/nvme0n2
[root@node1 ~]# lsblk # 可以查看到新加的硬盘vdb和vdc NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 253:0 0 30G 0 disk `-vda1 253:1 0 20G 0 part / vdb 253:16 0 20G 0 disk vdc 253:32 0 20G 0 disk
lvg模块
-
创建、删除卷组,修改卷组大小
-
常用选项:
-
vg:定义卷组名。vg:volume group
-
pvs:由哪些物理卷构成。pvs:physical volumes
# 在test组中的主机上安装lvm2,state不写,默认是present [root@control ansible]# ansible test -m yum -a "name=lvm2" # 手工在node1上对vdb进行分区 [root@node1 ~]# fdisk /dev/vdb Command (m for help): g # 创建GPT分区表 Command (m for help): n # 新建分区 Partition number (1-128, default 1): # 回车,使用1号分区 First sector (2048-41943006, default 2048): # 起始位置,回车 Last sector, +sectors or +size{K,M,G,T,P} (2048-41943006, default 41943006): +5G # 结束位置+5G Command (m for help): n # 新建分区 Partition number (2-128, default 2): # 回车,使用2号分区 First sector (10487808-41943006, default 10487808): # 起始位置,回车 Last sector, +sectors or +size{K,M,G,T,P} (10487808-41943006, default 41943006): # 结束位置,回车,分区到结尾 Command (m for help): w # 存盘 [root@node1 ~]# lsblk # vdb被分出来了两个分区 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 253:0 0 30G 0 disk `-vda1 253:1 0 20G 0 part / vdb 253:16 0 20G 0 disk |-vdb1 253:17 0 5G 0 part `-vdb2 253:18 0 15G 0 part vdc 253:32 0 20G 0 disk # 在test组中的主机上创建名为myvg的卷组,该卷组由/dev/vdb1组成 [root@control ansible]# ansible test -m lvg -a "vg=myvg pvs=/dev/vdb1" # 在node1上查看卷组 [root@node1 ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg 1 0 0 wz--n- <5.00g <5.00g # 扩容卷组。卷组由PV构成,只要向卷组中加入新的PV,即可实现扩容 [root@control ansible]# ansible test -m lvg -a "vg=myvg pvs=/dev/vdb1,/dev/vdb2" [root@node1 ~]# vgs # 在node1上查看卷组 VG #PV #LV #SN Attr VSize VFree myvg 2 0 0 wz--n- 19.99g 19.99g
lvol模块
-
创建、删除逻辑卷,修改逻辑卷大小
-
常用选项:
-
vg:指定在哪个卷组上创建逻辑卷
-
lv:创建的逻辑卷名。lv:logical volume
-
size:逻辑卷的大小,不写单位,以M为单位
# 在test组中的主机上创建名为mylv的逻辑卷,大小为2GB [root@control ansible]# ansible test -m lvol -a "vg=myvg lv=mylv size=2G" # 在node1上查看逻辑卷 [root@node1 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv myvg -wi-a----- 2.00g # mylv扩容至4GB [root@control ansible]# ansible test -m lvol -a "vg=myvg lv=mylv size=4G" [root@node1 ~]# lvs # 在node1上查看逻辑卷 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv myvg -wi-a----- 4.00g
filesystem模块
-
用于格式化,也就是创建文件系统
-
常用选项:
-
fstype:指定文件系统类型
-
dev:指定要格式化的设备,可以是分区,可以是逻辑卷
# 在test组中的主机上,把/dev/myvg/mylv格式化为xfs [root@control ansible]# ansible test -m filesystem -a "fstype=xfs dev=/dev/myvg/mylv" # 在node1上查看格式化结果 [root@node1 ~]# blkid /dev/myvg/mylv /dev/myvg/mylv: UUID="46c0af72-e517-4b15-9e53-ec72fbe1d96e" TYPE="xfs"
mount模块
-
用于挂载文件系统
-
常用选项:
-
path:挂载点。如果挂载点不存在,自动创建。
-
src:待挂载的设备
-
fstype:文件系统类型
-
state:mounted,表示永久挂载
# 在test组中的主机上,把/dev/myvg/mylv永久挂载到/data [root@control ansible]# ansible test -m mount -a "path=/data src=/dev/myvg/mylv state=mounted fstype=xfs" # 在node1上查看 [root@node1 ~]# tail -1 /etc/fstab /dev/myvg/mylv /data xfs defaults 0 0 [root@node1 ~]# df -h /data/ Filesystem Size Used Avail Use% Mounted on /dev/mapper/myvg-mylv 4.0G 61M 4.0G 2% /data # 在test组中的主机上,卸载/dev/myvg/mylv [root@control ansible]# ansible test -m mount -a "path=/data state=absent" # 在test组中的主机上,强制删除/dev/myvg/mylv [root@control ansible]# ansible test -m lvol -a "lv=mylv state=absent vg=myvg force=yes" # force是强制 # 在test组中的主机上,删除myvg卷组 [root@control ansible]# ansible test -m lvg -a "vg=myvg state=absent"
-
-
-
-