Ansible常用模块

Ansible是自动化运维利器,可以通过一台linux服务器远程批量控制其他服务器

(1)command模块、注意:此模块不支持 通配符 ;
shell模块,可以使用linux常规命令操作被控主机

ansible all -m command -a 'touch /opt/abc.txt' //使用command模块对所有主机下达创建文件的指令

ansible all -m command -a 'ls /opt/abc.txt' //使用command模块对所有主机下达查询文件的指令

(2)shell模块
ansible node1 -m shell -a 'useradd tom' //创建用户

ansible node1 -m shell -a 'echo 123 | passwd --stdin tom' //为用户配置密码

(3)script模块,可以将写好的shell脚本传递到被控主机执行
ansible all -m script -a 'test.sh' //脚本写好后,使用scritp模块传递给所有主机执行


以上三个模块command 、shell 、script虽然简单易用,但不具备幂等性
幂等性:任意次执行所产生的影响均与一次执行的影响相同。


(4)file模块,可以创建文件、目录、链接文件

path:文件路径 state:要创建的文件类型,touch是普通文件 directory是目录,absent是删除
link是链接文件,包含src 源文件和dest 目标文件 owner:属主 group:属组 mode:权限

ansible node1 -m file -a 'path=/opt/test66 state=touch' //在node1主机创建普通文件/opt/test66

ansible node1 -m file -a 'path=/opt/test666 state=directory' //在node1创建目录/opt/test666

ansible node1 -m file -a 'src =/etc/hosts dest=/opt/test77 state=link' //创建链接文件名叫 /opt/test77 ,源文件是/etc/hosts

ansible node1 -m file -a 'path=/opt/test99 state=touch owner=bin group=bin mode=0777' //创建普通文件,同时定义属主和属组是bin权限是0777


(5)copy模块,将控制主机的文件拷贝到被控主机

src 源文件 dest 目标 owner 属主 group 属组 mode 权限 backup=yes
备份文件

ansible node1 -m copy -a 'src=/etc/hostname dest=/opt' //将控制主机的hosname文件拷贝到被控主机的/opt下
ansible node1 -m copy -a 'src=/etc/hostname dest=/opt/name' //拷贝同时可以重命名
ansible node1 -m copy -a 'src=/etc/hostname dest=/opt/name66 owner=bin group=bin mode=000' //拷贝同时可以定义属主、属组、权限
ansible node1 -m copy -a 'src=/etc/hostname dest=/opt backup=yes' //如果目标文件已经存在,但内容不同会被覆盖,想要保留源文件可以加backup=yes


(6)user模块,可以管理账户

name 账户名 uid 定义id号 password 定义密码 group 定义基本组 groups 定义附加组
append=yes 追加 state present 创建(默认) absent 删除 remove=yes 删除用户相关文件

ansible node1 -m user -a 'name=test01' //创建名叫test01的账户
ansible node1 -m user -a 'name=test01 uid=2000' //对账户定义uid
ansible node1 -m user -a 'name=test01 group=bin' //对账户定义基本组
ansible node1 -m user -a ‘name=test01 groups=test01,root’ //定义账户的附加组,使用groups时是覆盖效果
ansible node1 -m user -a 'name=test01 groups=adm append=yes' //如果要追加附加组可以用append=yes
ansible node1 -m user -a 'name=test01 state=absent remove=yes' //彻底删除账户
ansible node1 -m user -a //这里命令没敲完,继续下一行敲
'name=test02 password={{"123456"|password_hash("sha512")}}' //创建test02账户同时配置加密形式的密码


(7)group模块,可以管理组

name 组名 gid 定义组号
state present 创建(默认) absent 删除

ansible node1 -m group -a 'name=group01' //创建group01组
ansible node1 -m group -a 'name=group01 gid=1500' //定义组id为1500
ansible node1 -m group -a 'name=group01 state=absent' //删除组

(8)service模块,可以管理服务

ansible node1 -m service -a 'name=sshd state=started' //开启服务
ansible node1 -m service -a 'name=sshd state=stopped' //关闭服务
ansible node1 -m service -a 'name=sshd state=restarted' //重启服务
ansible node1 -m service -a 'name=sshd enabled=yes' //设置开机自启

(9)firewalld模块,用来配置防火墙

state enabled 启用规则 disabled 禁用规则 zone 区域,默认public service 服务(协议名称)
port 端口/协议 permanent=yes 永久生效 immediate=yes 立刻生效

ansible node1 -m firewalld -a 'zone=public state=enabled service=http permanent=yes immediate=yes' //使用防火墙模块,在public区域放行网站协议的数据
ansible node1 -m firewalld -a 'zone=public state=disabled service=http permanent=yes immediate=yes' //使用防火墙模块,在public区域取消放行网站协议的数据
ansible node1 -m firewalld -a 'zone=public state=enabled port=80/tcp permanent=yes immediate=yes' //使用防火墙模块,在public区域放行tcp的80端口数据

(10)parted模块 ,对硬盘分区

device 操作的设备 label 分区表类型 老mbr(msdos)默认 新gpt number 分区序号
part_start 分区起始位置 part_end 分区结束位置 state present 创建 absent 删除
info查看分区信息

ansible node4 -m parted -a 'device=/dev/vdb number=1 part_end=100MiB state=present' //在node4主机的vdb磁盘创建序号为1的100M分区
ansible node4 -m parted -a 'device=/dev/vdb number=2 part_start=100MiB part_end=200MiB state=present' //在node4主机的vdb磁盘创建序号为2的100M分区
ansible node4 -m parted -a 'device=/dev/vdb number=2 state=absent' //在node4主机的vdb磁盘删除序号为2的分区

(11)filesystem模块 ,可以赋予分区文件系统,实现格式化分区

dev 定义分区 fstype 文件系统类型 force=yes 强制

ansible node4 -m filesystem -a 'dev=/dev/vdb1 fstype=ext4' //为vdb1分区格式化成ext4文件系统
ansible node4 -m filesystem -a 'dev=/dev/vdb1 fstype=xfs force=yes' //为vdb1分区格式化成xfs文件系统,由于之前分区已经格式化存在文件系统记录,要用force强制

(12)mount 挂载模块,可以挂载分区

src 源 path 目标 fstype 文件系统类型 state执行动作 mounted 永久挂载且立刻生效

ansible node4 -m mount -a 'src=/dev/vdb1 path=/opt/vdb1 state=mounted fstype=xfs' //将vdb1分区永久挂载到/opt/vdb1目录
(13)lvg模块,创建卷组

vg 卷组名 state present 创建 absent 删除 pvs 指定物理卷

ansible node4 -m lvg -a 'vg=myvg pvs=/dev/vdb ' //创建名字是myvg的卷组,空间来自vdb硬盘
ansible node4 -m lvg -a 'vg=myvg state=absent' //删除卷组myvg

lvol模块,创建逻辑卷 lv 逻辑卷名 size 大小 vg 空间来自哪个卷组 state present 创建
absent 删除 force=yes

ansible node4 -m lvol -a 'lv=mylv size=100M vg=myvg' //创建名字是mylv的逻辑卷,大小100M,空间来自myvg卷组
ansible node4 -m lvol -a 'lv=mylv vg=myvg state=absent force=yes' //删除myvg卷组中名字叫mylv的逻辑卷

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值