ansible基本使用playbook入门playbook进阶ansible最佳实践roles
ansible核心组成
Inventory: 定义 Ansible 被管理主机的清单
Modules: 包括 Ansible 自带的核心模块及自定义模块
Playbooks: 剧本,定义 Ansible 多任务配置文件,由Ansible 自动执行
API: python接口,提供二次开发及系统整合能力
Plugins: 完成模块功能的补充,包括连接插件、 邮件插件等
ansible Ad-Hoc命令
Ad-Hoc命令是,完成实时的、一次性的、简单的工作
Ad-Hoc命令语法规则
常用的参数
-i 指定inventory文件
-m 指定模块
-a 参数命令
-u 指定访问用户
-k 输入密码
-K 输入sudo密码
-f 指定并发数量(默认并发数 5)
ansible常用模块
ping: 用于检测远程主机是否存活
shell:在远程主机上执行shell命令
script:在远端机器执行本地脚本
yum/apt:用于安装软件包
service:用于管理服务
file:用于配置文件属性
copy:复制文件到远程主机
setup:查看远程主机的基本信息
定义主机和主机组
Ansible 通过读取默认的主机清单配置 ,可以同时连接到多个远程主机上执行任务,也可以同时使用多个清单文件,甚至可以动态地或者从云资源中拉取清单。
定义主机变量
定义多个主机
定义组变量
常用模块的使用案例
ping模块
检测text组内主机是否存活
shell模块
在目标主机执行shell命令
chdir: 运行shell之前cd到某个目录
script模块
在目标机器上执行本地脚本
chdir:先进入目标文件夹再执行脚本
yum/apt模块
apt、 yum 模块分表用于管理Ubuntu 系列和RedHat 系列系统软件包
name: 软件包名
state:软件包的状态(present/installed/absent/removed)
注意:包管理模块指定安装软件版本时,必须本地yum源有对应的版本才行;否则执行报错
service模块
管理目标机器服务的状态
name:必选项,服务名称
state:对当前服务执行启动,停止、 重启、 重新加载等操(started,stopped,restarted,reloaded)
enabled:是否开机启动 yes|no
runlevel:运行级别
arguments:给命令行提供一些选项
file模块
操作目标机器文件属性,新建/删除文件,文件夹及链接文件
group:定义文件/目录的属组
owner:定义文件/目录的属主
mode:定义文件/目录的权限
path:必选项,定义文件/目录的路径
state:定义文件状态(directory/link/absent/touch/hard)
copy模块
将文件从ansible管理机拷贝到目标机器
src:源文件
dest:目标路径
backup:覆盖之前,是否备份原文件
owner:设定文件/目录的属主
group:设定文件/目录的属组
mode:设定文件/目录的权限
setup模块
搜集系统信息
搜集主机的所有系统信息
ansible all -m setup
模块帮助
获取所有模块列表,使用:
获取模块的详细信息,请使用:
在线帮助:http://docs.ansible.com/ansible/latest/modulesbycategory.html
领取专属 10元无门槛券
私享最新 技术干货