ansible使用模块时要用-m 后面加模块名
后面加-a 接所执行的命令,执行的命令用“”‘’括起来,一般用‘’,后面加-u接用户,表示指定用户,
ansible的用法:
ansible<host-patten>[-m module_name][-a args]
--version 显示版本
-m module指定模块,默认为command模块
-v显示执行时详细过程,-vv -vvv 更详细
--list-hosts显示主机列表,可简写为list
-k,--ask-pass 提示输入ssh连接密码,默认key验证
-K,--ask-become-pass提示输入sudo时的口令
-C,--check检查,并不执行
-T,--timeout=TIMEOUT执行命令的超时时间,默认10s
-u,--user=REMOTE_USER执行远程执行的用户,在未进行key验证时后面加-k,回车后输入口令
-b,--become代替旧版的sudo切换,代替root身份执行,在未进行key验证时后面加-K,回车后输入口令,前提是-u后面的身份必须得到sudo授权,或者加入授权组,也可以使授权组不用输入口令
host-pattern:是主机清单里的ip,可以写ip,可以写all代表全部,可以写分组名,可以用通配符代替分组名,使用分组时可以用‘与:&’‘非:!’比如:‘webs:!dbs’表示在webs组里不在dbs组里
ansible的执行过程:
1加载自己的配置文件,默认/etc/ansible/ansible.cfg
2加载自己的对应模块文件,如:command
3通过ansible将模块或命令生成对应的临时Python文件,并将改文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件
4给文件+x执行
5执行并返回结果
6删除临时Python文件,sleep 0退出
以下操作都已基于key验证
ping模块
ping模块,不基于tcp/ip,使用时前面加-m
command模块:
因为-m默认的是command模块可以不用加-m command
可以用ansible-doc command 查看command模块详细使用文档
用上面的操作执行脚本要带#!/bin/bash
command模块无法对符号| 、变量、> 、&等进行操作。所以使用shell模块
shell模块:万能模块,打包压缩、
可以用ansible-doc shell查看详细使用信息,根command用法差不多
Script : 运行脚本的模块
在ansible方把脚本编写好,用script就可执行。
copy模块:把本机文件推送到远程被控制的主机上,
用ansible-doc -s copy 查看详细用法
1.把系统自带的配置文件拷贝到当前文件夹里,并改配置文件
不想要备份的文件可以用shell模块删除,不能用command模块删除
Fetch模块
用ansible-doc -s fetch 查看详细的用法
archive打包模块
可以用ansible-doc archive查看详细用法
unarchive解包模块
用ansible-doc unarchive查看详细用法
file模块:创建文件的
用ansible-doc -s file查看详细用法
state根据具体的值创建不同的文件夹
创建软连接
hostname模块:管理主机名并且改配置文件
不改centos7里,配置文件/etc/hosts
改变centos6里,配置文件/etc/sysconfig/network
改变centos7里,配置文件/etc/hostname
用ansible-doc -s hostname查看详细用法
cron模块:计划任务的模块
用ansible-doc -s cron 查看详细用法
创建计划任务
关掉计划任务
删除计划任务
yum模块:
用ansible-doc -s yum 查看详细用法
。
。
未完待续