Ansible实践(二):模块

环境声明

  • Vmware虚拟主机 Ansible服务器 Centos7.7
  • Azure虚拟机 Ansible客户机 Centos7.7
  • 阿里云 ECS Ansible客户机 Centos7.7
  • Aws EC2 Ansible客户机 Centos7.7

Ansible模块

借助ssh协议,Ansible实现了ansible服务器与客户机之间的通信,基于各个模块完成所需的各种功能。本文将介绍常用的模块及用法。
在开始实践各项功能之前,请确保您已经在主机配置清单中配置好了主机的连接信息,以方便进行下面的实践。
Ansible常用模块包括shell模块、复制模块、用户模块、软件包管理、服务模块、文件模块、收集模块等。
如果需要获取模块的详细用法,可以使用ansible-doc [模块名]获取详细信息

  • shell模块
    shell模块的标识符为shell,语句结构为
	ansible [操作对象] -m shell -a '[操作语句]'

操作语句与普通shell语句语法类似

举例`:安装apache

	ansible host2 -m shell -a 'yum -y install httpd' -o 

获取负载均衡信息

	ansible host2 -m shell -a 'uptime' -o 
  • 复制模块
    复制模块的标识符为copy,语法结构为
	ansible [操作对象] -m copy  -a '操作语句'

操作语句结构参数化,类似变量的声明与赋值,可选参数
src=源地址变更
owner=属主
group=属组
mode=权限
更多参数可以参考ansible-doc copy

举例:复制文件/etc/file1到/tmp/file2`

	ansible host1 -m copy -a 'src=/etc/file1=/tmp/file2 mode=777 owner=root'`
  • 用户模块
    用户模块的标识符为user,语法结构为
	ansible [操作对象] -m user -a '操作语句

操作语句参数化,类似变量声明与赋值,常见可选参数
name=用户名
state=操作类型
password=加密后的密码
更多参数可以参考ansible-doc user

举例:创建用户

	ansible host1 -m user -a 'name=test state=present password=[加密后的密码]'

计算加密密码`

	echo '明文密码''openssl passwd -1 -stdin`
  • 软件包管理模块
    以Centos的yum安装为例,标识符为yum,语法结构为
	ansible [操作对象] -m yum -a '操作语句' 

操作语句参数化,类似变量声明与赋值,常见可选参数
name=软件包名
state=版本
更多参数可以参考ansible-doc yum

举例:安装httpd

	ansible host2 -m yum -a 'name="httpd" state=latest'`
  • 服务模块
    服务模块标识符为service,语法结构为
	ansible [操作对象] -m service -a '操作语句'

操作语句参数化,类似变量声明与赋值,常见可选参数
name=服务名
state=操作符
更多可选参数可以参考ansible-doc service

举例:启动httpd并设置开机自启动

	ansible host2 -m service -a 'name=httpd state=started enabled=no'`
  • 文件模块
    文件模块标识符为file,语法结构为
	ansible [操作对象] -m file -a '

操作语句操作语句参数化,类似变量声明与赋值,常见可选参数
path=文件名
state=操作符
更多可选参数可以参考ansible-doc file

举例:创建权限为777的文件/tmp/test.txt

	ansible host1 -m file -a 'path=/tmp/test.txt mode=777 state=touch'
  • 收集模块
    文件操作标识符为setup,语法结构为
	ansible [操作对象] -m setup '[操作语句]'

操作语句为空,获取所有信息
使用filter=变量名可获取指定信息
更多可选参数可以参考ansible-doc setup

举例:获取Ipv4地址

	ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'

总结

  • Ansible的操作基于模块工作,每个模块的工作方式可以使用"ansible-doc [模块]"来查询
  • shell模块类似于万能模块,能够实现其他模块的各种功能。但是其他模块操作语句参数化的处理,能够使得操作更加明晰。同时为接下来使用YAML语言编写剧本提供了帮助。

个人博客同步更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值