ansible的简单使用格式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible的简单使用格式相关的知识,希望对你有一定的参考价值。
ansible的简单使用格式:Ansible服务器192.168.182.254
ansible HOST-PATTERN -m MOD_NAME -a MOD_ARGS
ansible <host-pattern> [-m module_name] [-a args] [options]
ansible的常用模块:
获取所有模块列表;
ansible-doc -l
获取模块参数:
ansible-doc -s module_name
command模块:在远程主机运行命令;模块可省略,默认为command模块。
例如:
ansible test -a "adduser test1" 添加用户
shell模块:在远程主机在shell进程下运行命令,支持shell的特性,如管道,重定向等;会在子shell中运行命令
例如:
ansible test -a "echo "123123" | passwd --stdin test1" 批量修改密码
copy模块:Copies files to remote locations.复制本地文件至远程服务器,并且能够改属性等
用法:
(1)src= dest=
src=源文件路径,可以使用绝对路径也可以使用相对路径,如果路径是一个目录,递归的复制目录;,如果路径以“/”结束,只有在该目录的内容复制到目的地。否则,如果它不以“/”结束,与所有内容复制目录本身;
dest=远程路径,必须是绝对路径,如果src是目录,dest一定也是目录
例如:
ansible test -m copy -a ‘src=/etc/fstab dest=/tmp/fstab‘
(2)content= dest=
owner=,group=,mode= 可以指明目标文件的属主,属组,权限
content=源文件,是将数据流覆盖填充到dest=远程目标文件中;
例如:
ansible test -m copy -a ‘content="hello there\n" mode=400 dest=/tmp/tmpfile‘
注意:单引号和双引号的嵌套;
cron:管理任务计划
minute=( 0-59, , /2, etc )
day=( 1-31, , /2, etc )
month=( 1-12, , /2, etc )
weekday=( 0-6 for Sunday-Saturday, , etc )
hour=( 0-23, , /2, etc )
job= #需要执行的任务
name= #必须给的选项
state=
present:创建
absent:删除
例如:
添加任务计划:
ansible all -m cron -a "minute=/5 job=‘/sbin/ntpdate 172.16.0.1 &> /dev/null‘ name=Synctime"
删除任务计划:
ansible all -m cron -a " t name=Synctime"
查看任务计划的命令:crontab -l
真实的位置在:/var/spool/cron下面
fetch模块:从远程主机上获取文件到本地主机,只能fetch文件,不能fetch目录;
dest=本地主机的目录,只能是目录,拉取文件到本地时会以IP为目录名,在其中保留文件的目录结构,通常用来备份;
src=只能是远程主机上的文件,不能是目录
例如:
ansible all -m fetch -a "src=/tmp/test/123 dest=/tmp/"
file模块: 设置文件属性
用法:
(1)创建链接文件:path=目标路径(必给项) src=源文件 state=link
例如:
ansible all -m file -a "src=/tmp/fstab path=/tmp/fstab.link state=link"
(2)修改属性:path= owner= mode= group=
(3)创建目录:path= state=directory
例如:
ansible all -m file -a "path=/tmp/test state=directory"
注意:创建目录可递归创建。
hostname模块:管理主机名
name=
pip模块: Python的包管理工具
yum模块:yum程序包管理
name=:程序包名称,可以带版本号
state=
present,latest
absent
例如:
安装软件包
ansible all -m yum -a "name=lrzsz"
ansible all -m yum -a "name=httpd "
删除软件包:
ansible all -m yum -a "name=lrzsz state=absent"
service模块:管理服务
name=
state=
started:启动
stopped:停止
restarted:重启
enabled=是否开机启动
runlevel=
例如:
ansible all -m service -a "name=httpd state=started"
url模块:
user模块:管理用户账号
name=
system={yes|no}
uid=
shell= 可选设置默认shell,默认为/bin/bash
group=
groups=
comment= 可选设置描述,默认为空
home= 可选设置家目录,默认创建目录
state=
present 创建
absent 删除
setup模块:用来获取facts变量
group模块:用来添加或删除组
name= (必给的)
state=
present
absent
system=
gid=
script模块:执行脚本
-a "/PATH/TO/SCRIPT_FILE"
template模块:基于模板方式生成一个文件复制到远程主机
src=
dest=
owner=
group=
mode=
等等
以上是关于ansible的简单使用格式的主要内容,如果未能解决你的问题,请参考以下文章