前言
- 基本概念:
Ansible是自动化运维工具,基于Python开发。基于主机清单/etc/ansible/hosts文件里定义的主机和主机组,可实现远程管理目标主机的功能。实现了批量系统配置、批量程序部署、批量运行命令等功能。- 简单使用格式:
ansible 主机(主机清单里定义的主机或主机组) -m 模块 -a " 模块参数 "- 获取模块列表:
ansible-doc -l- 查看模块帮助:
ansible-doc -s Module_Name(模块名)
Ansible的常用模块
- templates模块:
直接把一个文件基于模板处理完以后保存于远程服务器之上; - shell模块:
在远程主机上shell进程下运行命令,支持shell特性,如管道等; - copy模块:
复制文件的模块;
(1) src=源地址,源目录
(如果带/的话目录本身不复制,只把目录中的内容复制过去,如果最后不带/的话会复制目录本身以及内容可递归)
dest=目标地址、目标目录
(2) content=('自己生成内容')
dest=(把自己生成的内容发到目标地址)
owner(复制过去之后的属主),
group(复制过去之后的属组),
mode(复制过去之后的权限)
remote_src (从远程复制到远程)
- file模块:
创建文件的模块,其更重要的是设定文件属性的;
(1) 创建链接文件:*path= src= state=link
(2) 修改属性:path= owner= mode= group=
(3) 创建目录:path= state=directory
- yum模块:
安装程序包;
name=:程序包名称,可以带版本号
state= 安装还是卸载
present, latest , installed都表示安装
absent , removed 都表示卸载
- service模块:
管理服务,比如启动停止重启之类的
name=服务名称
state=
started 启动服务
stopped 停止服务
restarted 重启服务
enabled 开机启用
- user模块:
管理用户账号;
*name= 用户名
system= 是否系统用户
uid= 用户账号
shell= shell类型
group= 属组
groups= 附属组
home= 家目录
- group模块:
在指定目标主机上创建组的;
name=组名
gid=组ID
state
结语
我只是列出了比较常用的几个模块来简单说明,也是自我学习用的;可以通过
ansible-doc -l
列出所有模块,并通过ansible-doc -s Module_Name(模块名)
获取帮助;