Ansible是一个用来远程管理服务器的工具软件,远程批量部署主机上的服务,这里远程主机指的是任何可以通过SSh登录的主机(复制文件,安装服务,服务启动停止管理,配置管理等)。
注意: 使用ansible的前提是配置好了ssh服务,而且也给远程节点的主机发了密钥,能够连接,或者在配置文件中说明用户和密码。
安装ansible:
yum install epel-release -y
yum install ansible -y
模块查找命令:
ansible-doc-l
查看某个模块的参数帮助:
ansible-doc -s command
ansible的配置文件
/etc/ansible/hosts
功能说明:执行一个命令在远程节点上(在远程主机上执行命令)
范例:
ansible oldboy -m comand -a “free -m” (oldboy是主机的总模块名称,command)
ansible oldboy -m comand -a “df -h”
ansible oldboy -m comand -a “ls /root”
ansible oldboy -m comand -a “ifconfig”
参数 | 选项说明 |
---|---|
src | 本地文件复制到远程服务器,可以是绝对路径也可以是相对路径,如果路径是一个目录将会递归复制 |
dest | 文件应该被拷贝到的远程节点的绝对路径信息 |
owner | 定义所有拥有文件或目录的所属用户名称,类似于chown命令 |
group | 定义所拥有文件或目录的所属组的名称,也类似于chown命令 |
mode | 定义文件或目录的权限信息,类似于chmod命令 |
backup | 创建备份文件并包含时间戳信息,以便能够还原回原文件(默认配置为no,指定的配置信息为yes或者no) |
功能说明:在远程节点上运行本地脚本模块
参数 | 说明 |
---|---|
creates | 定义一个文件是否存在,如果不存在,则执行相应的命令,如果存在跳过此骤 |
free_form(必有参数) | 参数信息中可以输入任何系统命令信息,实现远程管理 |
removes | 定义一个文件是否存在,如果存在则执行相应的命令,如果不存在跳过测步骤 |
范例:
ansible oldboy -m script -a “/server/scripts/bak.sh”
oldboy模块下的主机都执行这个脚本
功能说明:执行一个命令在远程节点
参数说明:
参数 | 说明 |
---|---|
chdir | 在执行命令之前cd到指定的目录中 |
creates | 定义一个文件是否存在,如果不存在,则执行相应的命令,如果存在跳过此骤 |
free_form(必有参数) | 参数信息中可以输入任何系统命令信息,实现远程管理 |
removes | 定义一个文件是否存在,如果存在则执行相应的命令,如果不存在跳过测步骤 |
注意: shell为基本命令模块,可以执行脚本文件,当相应脚本文件需要存在与远程主机节点上,并且shell模块不受类似变量$HOME和参数"<",">"," | “,”;","&"的影响,都可以进行识别 |
范例:
ansible oldboy -m shell -a “sh /server/scripts/bak.sh”
oldboy模块下的主机运行bak.sh脚本
功能说明:设置文件属性
参数说明:
参数 | 说明 |
---|---|
src | 要链接的文件路径(只能应用state=link),创建链接文件时使用 |
path | 文件路径管理:别名方式:dest,name |
owner | 定义所有拥有文件或目录的所属用户名称,类似于chown命令 |
group | 定义所拥有文件或目录的所属组的名称,也类似于chown命令 |
mode | 定义文件或目录的权限信息,类似于chmod命令 |
state | 如果指定参数directory,所有不存在的子目录都会被创建;如果指定参数为file,如果文件不存在将不能被创建;如果指定参数为link,符号链接将被创建或者更改;如果指定参数为hard,便会创建出硬链接;如果指定参数为absent,目录将会被递归删除以及文件,而且将会被取消链接;如果指定参数为touch,路径不存在的话将创建一个空文件,路径或者文件存在的话将会更新文件访问和修改时间 |