ansible - 基本模块-1
幂等性:多次执行数据不变
对数据进行分类
主配置文件
/etc/annsible/ansible.cnnf
log_path=/var/log/ansible.log # 开启执行日志记录
host_key_checking=False # 检查对应服务器的hostkey,第一次连接不用输入yes
需要配置主机清单
/etc/ansible/hosts
存放角色目录
/etc/annsible/roles
ansible对主机分组
ansible相关工具命令
基本用法,查看模块帮助,如果查看详细输出,可以不加 -s
ansible通过ssh key 管理主机
需要提前把ansible 管理主机的ssh 公钥传输给远程 被管理服务器。
命令行格式
或的关系
查看两个分组的并集主机列表,需要两个分组都有相同的服务器
取反,不属于dbservers 分组的服务器
排除某台机器,; 用于命令隔离
ansible 常用模块
执行逻辑是生成py文件,拷贝到远程主机,远程主机执行完成后进行文件删除
green 执行成功,但是没做任何修改
yellow 执行成功,并且对目标服务器做了修改
comand 模块,默认模块
存在缺陷:不支持变量,管道,通配符 & | < > 等特殊字符
作用:执行 linux 命令
-m 指定模块名
-a 命令
进入指定目录后,再去执行命令
creates 对文件进行判断,如果存在,则不执行
removes 对文件进行判断,如果存在,则执行
shell 模块
支持特殊字符
修改shell 模块为默认模块
script
将ansible的本地脚本在远程主机执行
test.sh 脚本为ansible 本机的目录脚本
copy
从ansible服务器的文件复制到远程服务器
1、修改所属组,文件权限,如果文件存在,则备份
但是由于ansible的幂等性,如果文件一样,当文件复制到远程主机,则不会备份;当文件内容发生改变,则会进行备份。
2、如果加上 / 结尾,复制文件; 如果不加 / 复制整个目录
fetch 模块
将远程主机的文件拉取到ansible本地
如果抓取多个主机的文件,ansible 会以主机ip或名称 创建对应目录存放拉取到的文件
file 模块
1、在远程主机创建文件,并修改权限
验证
2、在远程服务器创建文件夹
3、删除文件夹
4、创建软链接
验证
清理软链接
unarchive 模块
功能:解包解压缩
将ansible的包传输到远程主机并解压缩到指定目录,设置copy=yes
仅解压缩目标主机的压缩包到指定目录下,设置copy=no
src:源路径,可以是ansible主机的路径,也可以是远程主机的路径,远程需要设置copy=no
desc:远程主机的目标路径
mode:解压缩后的文件权限
archive 模块
功能:打包模块
cron 模块
计划任务
查看
yum 模块
安装、卸载软件
service 模块
启动,关闭,开机启动
停止服务重启服务
user模块
remove=yes 删除用户家目录
group 模块
Lineinfile 模块
相当于sed, 对文件内容进行替换
解决shell 命令 执行sed 命令需要转义的问题
1、匹配指定的行,然后整行替换
2、修改文件端口
3、匹配到某些行后进行删除
Replace模块
类似于sed命令,基于正则进行匹配和替换
setup 模块
收集服务器系统详细信息