前言
Ansible命令行工具会向指定的主机通过ssh连接发送命令。这些主机在ansible中被称为资产inventory,接下来我们会介绍inventory的配置方式
一. Inventory 配置
资产配置可以使用可以使用IP或主机名,资产配置文件为 /etc/ansible/hosts
分组
将同一个类别的主机放入一个组中,使用[group_name]元素定义,示例如下:
[dbserver]
192.168.200.135
node2
注意:如果使用主机名,要求能够解析主机名,我们可以通/etc/hosts解析或则DNS解析
未分组的主机
我们需要将主机列表放在[group_name]元素之上即可,示例:
node1
node2
[dbserver]
192.168.200.135
node2
注意:主机可以在不同的组和未分组的主机列表中重复使用
主机名通配
www[001:009].example.com #匹配www001.example.com 到 www009.example.com
192.168.200.13[6:9] #匹配192.168.200.136 到192.168.200.139
二. ansible-doc的使用
ansible没有任何功能,所用的功能都由对应的模块实现,ansible-doc命令列出可用的模块以及模块使用的方法
基本语法格式:
ansible-doc [-l] [-s] [module...]
options说明:
-l 显示所有可用模块
-s 查看某一模块的参数
示例:
三. ansible的使用
1. ansible使用语法格式
__ansible < host-pattern > [-m module_name] [-a args]__
< host-pattern> : 尖括号表示不可省
- 在资产文件中的组名
- 资产文件中的IP或主机名
- all文件资产文件中的所有主机
[-m module_name] :中括号表示此选项可省,此参数为模块名
-a args :模块对应的参数,有些模块没有参数。
2. ansible中常用模块使用方法
ping:探测主机是否存活,无参数
command : 远程执行命令,但不支持管道。它是默认命令可不指明模块
shell :远程执行命令,与command的不同在于可以使用管道
用法:
job 执行的命令
state 添加crontab还是删除,present(添加),absent(删除),默认是添加
name 设置crontab条目的名称
minute,hour,day,month 设置运行的时间
示例:
添加一个crontab条目
到对应主机上查看crontab条目
删除crontab条目
copy : 拷贝文件到远程主机
用法
src :本地文件路径,可以是绝对和相对
dest= :不可省,如果src是目录,则dest也是目录。只能是绝对路径
group :指明文件属组
mode :指明权限
owner :指明所有者
content :直接写出内容,并将其复制给远程主机
示例:
复制本地文件到远端主机
直接写出要复制到远端主机的内容
file
用法
1. 创建链接文件
path=/PATH/TO/SOMEFILE src=/PATH/TO/SOMEFILE state=link
path指向的路径生成一个链接文件,链接文件指向src指向的路径。
2. 创建 目录
path=/PATH/TO/SOMEFILE state=directory
3. 删除文件
path=/PATH/TO/SOMEFILE state=absent
- 创建连接文件
- 创建 目录
- 删除文件
fetch :从远端主机获取文件
用法:
src=远端主机上的文件。
dest=保存文件的目录
示例:
注意:获取的文件存放的路径为dest_dir/IP|address/src_file。
group:添加或删除组
用法:
gid :指明组ID
name:指明组名
state:创建或删除,present(创建,默认选项),absent(删除)
system:yes表明创建系统用户,默认是false
示例:
用法:
name= :用户的名称
uid :指明用户id号
state :present创建用户,absent删除用户
createhome :默认为yes,如果为no则不创建用户家目录
home :设置用户家目录
group :指明用户主组
groups : 指明用户附加组
password :用户加密后的值
shell : 设置用户使用的shell
示例:
用法:
name= : 指明管理程序包包名
state :present,installed表示安装程序包,latest表明安装最新版本;absent和removed表示卸载安装包。默认是安装最新版本
service : 管理服务
用法:
name= :管理服务的名称
enabled : 是否开机启动
state : started/stopped启动或停止服务;restart重启服务;reloaded重新加载配置文件,注意如果服务没有起来会启动服务。
示例: