linux学习

Ansible常用模块

yum_repository模块

Ansible使用yum_repository模块创建或修改yum源配置文件。

常用选项:

file: 指定仓库文件名
name:指定仓库名称
description::指定仓库描述
baseurl :指定源路径
enabled :仓库是否启用
gpgcheck:仓库是否检测gpgkey
state:状态,默认值present 建立;absent 为删除

# 创建yum源
[root@pubserver ansible]# ansible webservers -m yum_repository -a "file=myrepo name=myApp description='My App' baseurl=ftp://192.168.88.240/dvd/AppStream gpgcheck=no enabled=yes"

yum模块

Ansible使用yum模块安装、卸载、升级软件包。

常用选项:

name:包名
state: 状态。present 安装,如果已安装则忽略;absent卸载;latest安装或升级到最新版本

# 给web1安装httpd
[root@pubserver ansible]# ansible web1 -m yum -a 'name=httpd state=present'
# 卸载httpd
[root@pubserver ansible]# ansible web1 -m yum -a 'name=httpd state=absent'

service模块

Ansible使用service模块管理系统服务状态(启动、关闭、重启、开机自启动)。

常用选项:

name:控制的服务名

state:状态。 started启动;stopped关闭;restarted重启

enabled:设置开机启动。yes表示设置开机自启;no表示设置开机不自启

# 设置httpd开机自启,并且启动服务
[root@pubserver ansible]# ansible web1 -m service -a 'name=httpd state=started enable=yes'

lvg模块

逻辑卷(LVM)是Linux系统对硬盘分区的一种管理机制。利用逻辑卷可以动态管理磁盘存储空间,提高磁盘分区管理的灵活性。

创建逻辑卷的原理是:把硬盘或分区转换成物理卷PV;再把一个到多个PV组合成卷组VG;在VG上划分逻辑卷LV。LV可以像普通分区那样,进行分区、格式化、挂载使用。

Ansible使用lvg模块来创建、删除卷组(VG),修改卷组大小。

常用选项:

vg:定义卷组名。vg:volume group

pvs:由哪些物理卷构成。pvs:physical volumes

state:状态。present 创建;absent 删除

# 创建物理卷
[root@web1 ~]# parted /dev/nvme0n2 mklabel gpt
信息: You may need to update /etc/fstab.

[root@web1 ~]# parted /dev/nvme0n2 mkpart primary 1 50%
信息: You may need to update /etc/fstab.

[root@web1 ~]# parted /dev/nvme0n2 mkpart primary 50% 100% 

[root@web1 ~]# lsblk                                                      
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 1024M  0 rom  
nvme0n1     259:0    0   20G  0 disk 
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0   19G  0 part 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
nvme0n2     259:3    0   20G  0 disk 
├─nvme0n2p2 259:5    0   10G  0 part 
└─nvme0n2p1 259:6    0   10G  0 part 
nvme0n3     259:4    0   20G  0 disk 

# 安装工具
[root@pubserver ansible]# ansible web1 -m yum -a 'name=lvm2'

# 在web1上创建名为myvg的卷组
[root@pubserver ansible]# ansible web1 -m lvg -a 'vg=myvg pvs=/dev/nvme0n2p1'

[root@web1 ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree  
  myvg   1   0   0 wz--n- <10.00g <10.00g
  rl     1   2   0 wz--n- <19.00g      0 
[root@web1 ~]# pvs
  PV             VG   Fmt  Attr PSize   PFree  
  /dev/nvme0n1p2 rl   lvm2 a--  <19.00g      0 
  /dev/nvme0n2p1 myvg lvm2 a--  <10.00g <10.00g

# 扩容
[root@pubserver ansible]# ansible web1 -m lvg -a 'vg=myvg pvs=/dev/nvme0n2p1,/dev/nvme0n2p2'

[root@web1 dev]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree 
  myvg   2   0   0 wz--n-  19.99g 19.99g
  rl     1   2   0 wz--n- <19.00g     0 
[root@web1 dev]# pvs
  PV             VG   Fmt  Attr PSize   PFree  
  /dev/nvme0n1p2 rl   lvm2 a--  <19.00g      0 
  /dev/nvme0n2p1 myvg lvm2 a--  <10.00g <10.00g
  /dev/nvme0n2p2 myvg lvm2 a--  <10.00g <10.00g

# 删除
[root@pubserver ansible]# ansible web1 -m lvg -a 'vg=myvg state=absent'

lvol模块

Ansible使用lvol模块创建、删除逻辑卷(LV),修改逻辑卷大小。

常用选项:

vg:指定在哪个卷组上创建逻辑卷

lv:创建的逻辑卷名。lv:logical volume

size:逻辑卷的大小,不写单位,以M为单位

state状态。present 创建;absent 删除

# 在web1上创建名为mylv的逻辑卷,大小为2GB
[root@pubserver ansible]# ansible web1 -m lvol -a 'lv=mylv vg=myvg size=2G'

[root@web1 dev]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a-----   2.00g                                                    
  root rl   -wi-ao---- <17.00g                                                    
  swap rl   -wi-ao----   2.00g 

#将mylv的逻辑卷扩容至4GB
[root@pubserver ansible]# ansible web1 -m lvol -a 'lv=mylv vg=myvg size=4G'
[root@web1 dev]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a-----   4.00g                                                    
  root rl   -wi-ao---- <17.00g                                                    
  swap rl   -wi-ao----   2.00g

 # 强制删除
 [root@pubserver ansible]# ansible web1 -m lvol -a 'lv=mylv state=absent vg=myvg force=yes'

filesystem模块

Ansible使用filesystem模块进行格式化,即创建文件系统。

常用选项:

fstype:指定文件系统类型

dev:指定要格式化的设备,可以是分区,可以是逻辑卷

# 格式化
[root@pubserver ansible]# ansible web1 -m filesystem -a 'fstype=xfs dev=/dev/myvg/mylv'

[root@web1 dev]# blkid /dev/myvg/mylv 
/dev/myvg/mylv: UUID="ebea4fd6-152b-42cd-bbbf-cfacb792e286" BLOCK_SIZE="512" TYPE="xfs"

mount模块

Ansible使用mount模块挂载文件系统。

常用选项:

path:挂载点。如果挂载点不存在,自动创建

src:待挂载的设备

stype:文件系统类型

state:状态。mounted,表示永久挂载

# 挂载
[root@pubserver ansible]# ansible web1 -m mount -a 'path=/data src=/dev/myvg/mylv fstype=xfs state=mounted'
[root@web1 dev]# df -h /data
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/myvg-mylv  4.0G   61M  4.0G    2% /data

# 卸载
[root@pubserver ansible]# ansible web1 -m mount -a 'path=/data state=absent'
[root@web1 dev]# df -h /data
df: /data: 没有那个文件或目录

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注