Ansible模块详解

一、Ansible配置公私钥

上面我们已经提到过 ansible 是基于 ssh 协议实现的,所以其配置公私钥的方式与 ssh 协议的方式相同,具体操作步骤如下:

生成密钥

[root@ localhost ~]# ssh-keygen -t rsa

向主机分发私钥

[root@ localhost ~]# ssh-copy-id [email protected]
[root@ localhost ~]# ssh-copy-id [email protected]

这样,就可以实现无密码登录到各个服务器上。

二、Ping模块

用于测试远程主机是否在线,回复pong表示在线
ping模块用于检查指定节点机器(被管理主机)是否还能连通,用法简单,不涉及参数,主机如果在线,则回复pong

在这里插入图片描述

三、yum模块

使用yum软件包管理器安装,升级,降级,删除和列出软件包和组。

这个模块是RedHat / CentOS系统作为远端节点的OS的时候,用的最多的。Yum是啥就不多说了,RedHat 、CentOS包管理工具

yum模块用来在Centos系统上使用yum命令安装软件包
ansible webservers -m service -a 'name=vsftpd state=started enabled=yes'
ansible webservers -m yum -a 'name=httpd state=latest'

在这里插入图片描述

在这里插入图片描述

present:默认的,表示为安装
lastest: 安装为最新的版本
absent:表示删除卸载

四、copy模块

copy模块用来复制文件至目标主机

https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module

src:源文件绝对路径或相对路径
dest:目标地址,必须是绝对路径
content:可以代替src,要写入到dest文件中的内容,会echo追加进去
owner:属主
group:属组
mode:  复制到远程主机后,指定文件或目录权限,类似与chmod指明
backup:覆盖文件之前是否备份,yes|no
directory_mode:递归设定目录权限
force:yes,如果文件存在,但是内容不同,则强行覆盖,默认选项;no,如果文件不存在才复制
ansible  webservers  -m copy  -a ‘src=/root/nginx.sh  dest=/opt/
ansible webservers -m copy -a 'src=skaf.txt dest=/opt/'

在这里插入图片描述

五、fetch模块

它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中。

src:               远程系统上要获取的文件。 这必须是一个文件,而不是一个目录。 后续版本可能会支持递归提取。
dest:              保存文件的目录。
flat:              允许覆盖将主机名/路径/文件/文件附加到目的地的默认行为。
fail_on_missing:   当设置为yes时,如果源文件丢失,任务将会失败。
validate_checksum: 在获取文件之后验证源和目标校验和是否匹配

六、service 模块

服务管理模块这是常用模块,用于控制服务:

name:必选项,服务的名称。
state:  started(启动)  stopped(停止) restarted(重启)  reloaded(重载)
enabled:设置服务是否开机自动启动,默认是no,参数为yes|no, 要求状态(state)和启用(enabled)中至少有一个。
arguments:给命令行提供一些选项,向服务传递的命令行参数。
runlevel:运行级别,设置服务自启动级别。
sleep:如果执行了restarted,则在stop和start之间沉睡几秒钟
pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行
发布了108 篇原创文章 · 获赞 30 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/aaronszm/article/details/104238849