ansible自动化
今天给大家介绍一下ansible的各种模块,下面介绍的是本人常用的一些模块及其用法,可以用于平时的一些突然要在多台服务器进行同一操作的场景。
模块
- yum_repository
配置yum仓库模块
shell
ansible webservers -m yum_repository -a "file=myrepo name=myApp description='My App' baseurl=仓库路径 gpgcheck=no enabled=yes"
file:文件名
name:[]内容
descriotion:name内容
- yum
就是远程yum
name:包名
state:状态。present表示安装,如果已安装则忽略;latest表示安装或升级到最新版本;absent表示卸载。
- service
用于控制服务。启动、关闭、重启、开机自启。
常用选项:
name:控制的服务名
state:started表示启动;stopped表示关闭;restarted表示重启enabled:yes表示设置开机自启;no表示设置开机不要自启。
shell
ansible webservers -m service -a "name=nginx state=started enabled=yes"
在test主机上启动nginx,并设置它开机自启
逻辑卷模块
首先先在万web1添加一块新磁盘然后分区然后用ansible操作
-
lvg模块
创建、删除卷组,修改卷组大小
常用选项:
vg:定义卷组名。vg:volume group
pvs:由哪些物理卷构成。pvs:physical volumes
shell
在web1上安装lvm2,state不写,默认是present
ansible web1 -m yum -a "name=lvm2"
在web1上创建名为myvg的卷组,该卷组由/dev/vdb1组成
ansible web1 -m lvg -a "vg=myvg pvs=/dev/vdb1"
-
lvol模块
创建、删除逻辑卷,修改逻辑卷大小
常用选项:
vg:指定在哪个卷组上创建逻辑卷
lv:创建的逻辑卷名。lv:logical volume
size:逻辑卷的大小,不写单位,以M为单位
force是强制操作
shell
在web1上创建名为mylv的逻辑卷,大小为2GB
ansible web1 -m lvol -a "vg=myvg lv=mylv size=2G"
-
filesystem模块
用于格式化,也就是创建文件系统
常用选项:
fstype:指定文件系统类型
dev:指定要格式化的设备,可以是分区,可以是逻辑卷
shell
# 在web1上,把/dev/myvg/mylv格式化为xfs
ansible web1 -m filesystem -a "fstype=xfs dev=/dev/myvg/mylv"
-
mount模块
用于挂载文件系统
常用选项:
path:挂载点。如果挂载点不存在,自动创建。
src:待挂载的设备
fstype:文件系统类型
state:mounted,表示永久挂载
shell
#在web1上,把/dev/myvg/mylv永久挂载到/data
ansible web1 -m mount -a "path=/data src=/dev/myvg/mylv state=mounted fstype=xfs"
删除
shell
# 在web1上,卸载/dev/myvg/mylv
ansible web1 -m mount -a "path=/data state=absent"
# 在web1上,强制删除/dev/myvg/mylv
ansible web1 -m lvol -a "lv=mylv state=absent vg=myvg force=yes" # force是强制
# 在web1上,删除myvg卷组
ansible web1 -m lvg -a "vg=myvg state=absent"