1 ansible实现管理的方式
Ad-Hoc #利用ansible命令直接完成管理,主要用于临时命令使用场景
playbook #ansible脚本,主要用于大型项目场景,需要前期的规划
示例:
- vim test.yml
运行命令:
- ansible-playbook test.yml
2 Ad-Hoc执行方式中如何获取帮助
ansible-doc #显示模块帮助的命令
格式
ansible-doc [参数] [模块…]
常用参数
-l #列出可用模块
-s #显示指定模块的Playbook片段
3 ansible命令运行方式及常用参数
格式:
ansible 清单 -m 模块 -a 模块参数
常用参数
–version #显示版本
-m module #指定模块,默认为command模块
-v #详细过程 -vv -vvv更详细过程
–list #显示主机列表,也可以用–list-hosts
-k #提示输入ssh连接密码,默认key认证
-C #预执行检测
-T #执行命令的超时时间,默认10s
-u #指定远程执行的用户
-b #执行sudo切换身份操作
-become-user=USERNAME #指定sudo的用户
-K #提示输入sudo密码
4 ansible的基本颜色代表
绿色 #执行成功但未对远程主机做任何改变
黄色 #执行成功并对远程主机做改变
红色 #执行失败
5 ansible中的常用模块
1 command
功能:在远程主机执行命令,此模块为默认模块
###常用参数
chdir #执行命令前县进入到指定目录
cmd #运行命令指定
creates #如果文件存在将不运行
removes #如果文件存在将运行
free_form #在远程主机中执行的命令,此参数不需要加
- 示例:
- ansible westos -m shell -a ‘whoami’ -u root -k
- ansible all -m command -a "chdir=/etc creates=/etc/passwd cat passwd " -u root -k
- ansible all -m command -a "chdir=/etc cat passwd " -u root -k
- 注意:
Linux中的很多通配符在command模块中不支持
2 shell
功能:
和command功能类似
-
常用参数
chdir #执行命令前先进入到指定目录
cmd #运行命令指定
creates #如果文件存在将不运行
removes #如果文件存在将运行
free_form #在远程主机中执行的命令,此参数不需要加
executable #指定执行环境,默认为sh -
示例:
-
ansible all -m shell -a "executable=sh ps ax | grep $$ " -k
3 script
功能:在ansible主机中写好的脚本在受控主机中执行
- 示例:
vim /mnt/westos.sh
写:
#!/bin/bash
echo $HOSTNAME
运行:
ansible all -m script -a “/mnt/westos.sh” -k
4 copy
功能
从ansible主机复制文件到受控主机
常用参数
src #源文件
dest #目的地文件
owner #指定目的地文件所有人
group #指定目的地文件所有组
mode #指定目的地文件权限
baskup=yes #当受控主机中存在文件时备份原文件
content #指定文本内容直接在受控主机中生成文件
示例:
主控机:
-
cd /mnt
-
vim westostest
写:
hello westos
hello linux -
cd
-
cd .ansible
-
ansible all -m copy -a “src=/mnt/westos dest=/mnt/westos owner=westos mode=777 backup=yes”