您的当前位置:首页正文

Linux系统运维之ansible远程批量管理控制

2024-11-28 来源:个人技术集锦

一、ansible介绍

Ansible是一个用来远程管理服务器的工具软件,远程批量部署主机上的服务,这里远程主机指的是任何可以通过SSh登录的主机(复制文件,安装服务,服务启动停止管理,配置管理等)。
注意: 使用ansible的前提是配置好了ssh服务,而且也给远程节点的主机发了密钥,能够连接,或者在配置文件中说明用户和密码。

二、ansible使用条件

三、ansible下的模块介绍

安装ansible:
yum install epel-release -y
yum install ansible -y

模块查找命令:
ansible-doc-l

查看某个模块的参数帮助:
ansible-doc -s command

ansible的配置文件
/etc/ansible/hosts

command模块

功能说明:执行一个命令在远程节点上(在远程主机上执行命令)
范例:
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”

copy模块

参数选项说明
src本地文件复制到远程服务器,可以是绝对路径也可以是相对路径,如果路径是一个目录将会递归复制
dest文件应该被拷贝到的远程节点的绝对路径信息
owner定义所有拥有文件或目录的所属用户名称,类似于chown命令
group定义所拥有文件或目录的所属组的名称,也类似于chown命令
mode定义文件或目录的权限信息,类似于chmod命令
backup创建备份文件并包含时间戳信息,以便能够还原回原文件(默认配置为no,指定的配置信息为yes或者no)

script模块

功能说明:在远程节点上运行本地脚本模块

参数说明
creates定义一个文件是否存在,如果不存在,则执行相应的命令,如果存在跳过此骤
free_form(必有参数)参数信息中可以输入任何系统命令信息,实现远程管理
removes定义一个文件是否存在,如果存在则执行相应的命令,如果不存在跳过测步骤

范例:
ansible oldboy -m script -a “/server/scripts/bak.sh”
oldboy模块下的主机都执行这个脚本

shell模块

功能说明:执行一个命令在远程节点
参数说明:

参数说明
chdir在执行命令之前cd到指定的目录中
creates定义一个文件是否存在,如果不存在,则执行相应的命令,如果存在跳过此骤
free_form(必有参数)参数信息中可以输入任何系统命令信息,实现远程管理
removes定义一个文件是否存在,如果存在则执行相应的命令,如果不存在跳过测步骤
注意: shell为基本命令模块,可以执行脚本文件,当相应脚本文件需要存在与远程主机节点上,并且shell模块不受类似变量$HOME和参数"<",">","“,”;","&"的影响,都可以进行识别

范例:
ansible oldboy -m shell -a “sh /server/scripts/bak.sh”
oldboy模块下的主机运行bak.sh脚本

file模块

功能说明:设置文件属性
参数说明:

参数说明
src要链接的文件路径(只能应用state=link),创建链接文件时使用
path文件路径管理:别名方式:dest,name
owner定义所有拥有文件或目录的所属用户名称,类似于chown命令
group定义所拥有文件或目录的所属组的名称,也类似于chown命令
mode定义文件或目录的权限信息,类似于chmod命令
state如果指定参数directory,所有不存在的子目录都会被创建;如果指定参数为file,如果文件不存在将不能被创建;如果指定参数为link,符号链接将被创建或者更改;如果指定参数为hard,便会创建出硬链接;如果指定参数为absent,目录将会被递归删除以及文件,而且将会被取消链接;如果指定参数为touch,路径不存在的话将创建一个空文件,路径或者文件存在的话将会更新文件访问和修改时间
显示全文