Ansie常用系统模块:
一、Ansible ping模块
Ansible最基础的模块是ping模块,主要用于判断远程客户端是否在线,用于ping本身服务器,返回值是changed、ping
使用Ansible ping服务器状态,代码为ansible -k all -m ping
因为我的ansible服务器已经做了免密登录,所以不用到-k参数,关于ansible的各个参数在ansible原理篇里详解
二、Ansible command模块
Ansible command模块是Ansible默认模块,主要用于执行Linux基础命令,可以执行远程服务器命令执行、任务执行等操作。
但command模块不支持变量、重定向、管道符等,这些操作需要用shell模块执行
chdir:执行命令前,切换到目录
creates:当该文件存在时,不执行该步骤
executable:切换shell来执行命令,需要使用命令的绝对路径
free_from:需要执行的脚本,一般使用Ansible的-a参数代替。
removes:当该文件不存在时,不执行该步骤
warn:如果在ansible.cfg中存在告警,如果设定了false,不会告警该行
(1)chdir示例
命令格式为ansible IP(可使用正则表达式) [-i hosts文件地址][-m module_name] -a module_args
如果hosts文件里面没有指定密码,还要使用-k参数
(2)creates示例
某一文件存在时,不执行命令
三、Ansible copy模块
Ansible copy模块主要用于文件或者目录复制,支持文件、目录、权限、用户组功能
copy模块使用详解:
src | Ansible端源文件或者目录,空目录不复制 |
---|---|
content | 用来替代src,用于将指定文件的内容复制到远程文件内 |
dest | 客户端目标目录或者文件,需要绝对路径 |
directory_mode | 用于复制目录,新建的文件会被复制,而旧的不会被复制 |
backup | 复制之前,先备份远程节点上的原始文件 |
follow | 支持link文件复制 |
-force- | 覆盖远程主机不一致的内容– |
group | 设定远程主机目录的组名 |
mode | 设定远程主机文件及目录的权限 |
-owner- | -设定远程主机目录的用户名- |
Ansible copy模块示例:
(1)Ansible copy模块操作,src表示源文件,dest表示目标目录或文件,owner指定拥有者
代码示例为:ansible IP -m copy -a ‘src=/etc/passwd dest=/tmp mode=755 owner=root’
(2)connect表示文件内容,dest表示目标文件,owner表示指定拥有者
代码示例为ansible IP -m copy -a ‘content=“HELLO” dest=/mnt/haha.txt mode=755 ow