1、Ansible简单介绍:
作用:
- 上线新的软件、软件变更、软件升级。
功能:
- 运维自动化后期管理,如:装服务、装软件、推送服务、软件管理,适合一个规模的机器,专业级的自动化运维工具。
- ansible是模块化组成的,每个模块实现不同的自动化运维功能,模块由不同的人开发,已有上千个模块。
2、Ansible语法:
格式:
ansible <host-patten> [-m module_name] [-a commands]
选项:
选项 | 参数 |
---|---|
-m | 指定模块,默认为command |
-v | 详细过程,-vv、-vvv则更加详细 |
-k | –ask-pass,提示输入ssh连接密码,默认Key验证 |
-K | –ask-become-pass,提示输入sudo时的命令 |
-C | –check检查,并不执行 |
-T | –timeout=TIMEOUT,执行命令超时时间,默认10s |
-u | –user=remote_user,执行远程执行的用户 |
3、ansible模块
command
- 默认情况下,使用的是command模块,属于命令模块,适用于简单的命令,但无法支持>、<、|、&等符号。
- 参数及释义:
参数 | 释义 |
---|---|
chdir | 在执行命令前,进入到指定的目录中 |
creates | 判断指定文件是否存在,不指定后面的操作 |
removes | 判断指定文件是否存在,若存在,执行后面的操作 |
free_from | 必须输入一个合理的命令 |
shell
- 类似于command模块,功能更加强大,是command的升级版,且支持>、<、|、&等符号。
copy
- 用于将管理主机上的数据信心传给多台主机(required为必须使用的参数,*为默认的参数。copy模块在复制数据时,如果数据为软链接文件,会将链接指定的源文件进行复制,修改权限时,需要加0,如:chmod 0755)。
- 参数及释义:
参数 | 释义 |
---|---|
src | 指定将本地管理主机的数据信息进行远程复制 |
backup | 默认将数据复制到远程主机上,会覆盖原有的文件(包括no*和yes选项,yes将原文件进行备份) |
content | 在文件中添加信息 |
dest(required) | 将数据复制到远程节点的路径信息 |
group | 将数据复制到远程主机,设置文件属组用户信息 |
mode | 文件数据复制到远程主机,设置数据的权限 |
owner | 文件数据复制到远程主机,设置文件属主用户信息 |
remote_src | 包括no*和yes选项,若设置成yes,表示将远程主机上的数据进行移动操作,若设置成no,表示将管理主机上的数据进行分发操作 |
- 代码:
ansible -i test test -m copy -a "src=./test.txt dest=/test/ backup=yes owner=root group=root mode=0755" --become --become-method=sudo --become-user=root
fetch
- 抓取文件到管理主机上。
- 参数及释义:
参数 | 释义 |
---|---|
src | 要获取的远程系统上的文件,必须是文件,而不是目录 |
dest | 用于保存文件的目录 |
ansiable -i test test -m fetch -a "src=/test/1.txt dest=./" --become --become-method=sudo --become-user=root
- 代码:
file
- 实现创建、删除文件信息,对数据的权限进行修改。
- 参数及释义:
参数 | 释义 |
---|---|
dest | 将数据复制到远程节点的路径信息 |
group | 文件数据复制到远程主机,设置文件属主信息 |
mode | 设置数据的权限信息,如0644、0755 |
owner | 设置文件属主信息 |
src | 指定将本地管理主机的数据信息进行远程复制 |
state | 将数据进行删除 |
注:ansible在使用时,无法识别$,需要加上 \ 进行转移
ansible -i test test -m shell -a "ps -ef | grep java | awk '{print \$2}' | xargs kill -9" --become --become-method=sudo --become-user=root