首页 > 其他分享 >3 ansible常用模块命令

3 ansible常用模块命令

时间:2022-11-14 23:33:09浏览次数:42  
标签:tmp 常用 name ansible 模块 test txt vm3

Ansible常用模块命令
ansible命令格式:
ansible <host-pattern> [-m module_name] [-a args] [options]
<host-pattern> :指定主机组或IP
[-m module_name] : 指定调用模块
[-a args] [options] : 传递给模块的参数
---------

ansible vm --list-hosts # 列出执行主机列表
ansible-doc -l # 查看所有模块 (键入q退出)
ansible-doc command # 查看command模块详细信息
ansible-doc -s command # 查看command模块详细用法
ansible test -m command -a 'df -h' # 对所有被控服务器使用df -h 命令
ansible web -m command -a 'useradd Tom' # 批量添加用户


1 ping #ping服务器是否能通,如:
ansible all -m ping
ansible vm2,vm3 -m ping
ansible vm2:vm3 -m ping 
ansible myvm -m ping  --myvm是ansible hosts文件中定义的组名

指定host组中特定的机器:
ansible myvm -m ping --limit "vm3"

2 command #在远程主机上执行命令,并将结果返回本主机,hosts为定义的主机清单中的用户组
如:ansible -i hosts test -m command -a "chdir=/home/wps ls"
参数:
chdir:    在执行命令前,先切换目录信息
creates:  判断一个文件是否存在,如果存在,后面命令被跳过(不执行)
removes:  判断一个文件是否存在,如果存在,后面命令就执行
free_form:在使用command模块时候必须输入一个合法的linux命令
ansible vm3 -m command -a "chdir=/tmp pwd"
ansible vm3 -m command -a "creates=/tmp/test.txt touch /tmp/test.txt"

3 shell  #shell命令,万能模块,在目标主机执行命令
如:ansible -i hosts test -m shell -a "whoami"
chdir:    在执行命令前,先切换目录信息
creates:  判断一个文件是否存在,如果存在,后面命令被跳过(不执行)
removes:  判断一个文件是否存在,如果存在,后面命令就执行
free_form:在使用command模块时候必须输入一个合法的linux命令
可以识别一些特殊字符  < > | ; $<br>
ansible vm3 -m shell -a "echo `hostname` >>/tmp/test.txt"

4 copy #复制文件到远程机器,批量分发文件
如:ansible hosts -m copy -a "src=/home/ansible/test.txt dest=/home/"
作用:
分发文件数据信息     从管理端 --> 被管理端
修改文件权限属性信息
移动远程主机数据信息 被管理端 -- /tmp/test.txt --- /opt/
参数:
    src: 指定要推送的数据信息
    dest:指定数据保存在远程主机什么目录中
    mode:修改文件权限信息
    owner:修改文件属主信息
    group:修改文件属组信息
    backup: 分发文件数据时,会对源文件进行备份
    remote_src: 复制远程主机文件到其他路径,或者进行远程主机数据备份
    content:  直接编辑文件内容
ansible vm3 -m copy -a "src=/etc/hosts dest=/tmp/"

传输文件时,修改文件权限:
ansible vm3 -m copy -a "src=/etc/hosts dest=/tmp/ mode=777 owner=hadoop group=root"

分发文件时,将本机的文件,分发至远程主机上,并远端主机上,对源文件进行备份:
ansible vm3 -m copy -a "src=/tmp/test.txt dest=/tmp/ backup=yes"
远程主机上,备份的文件名: /tmp/test.txt.57298.2022-09-18@17:03:56~

远程主机文件进行复制备份(便于批量还原)(不会将本机的文件分发给远端主机):
ansible vm3 -m copy -a "src=/tmp/test.txt dest=/tmp/test.txt.backup remote_src=yes"

批量还原:
ansible vm3 -m copy -a "src=/tmp/test.txt.backup dest=/tmp/test.txt remote_src=yes"

直接编辑文件信息,并且进行批量分发:
ansible vm3 -m copy -a "content="test-data" dest=/tmp/aa.txt mode=755"
ansible vm3 -m copy -a "content='test-data-2' dest=/tmp/aa.txt mode=755"

5 fetch #拉取远程机器文件
ansible vm3 -m fetch -a "src=/tmp/test.txt.backup dest=/root"
将远程主机上的文件,拉取过来存放的路径是: /root/vm3/tmp/test.txt.backup


6 file #创建、修改、删除文件
作用:
修改文件权限信息
创建数据信息/删除数据信息
创建数据信息
参数:state
absent       -- 删除数据信息
directory    -- 创建目录
file ←
hard         -- 创建硬链接
link         -- 创建软链接
touch        -- 创建文件
创建目录:
ansible vm3 -m file -a "path=/tmp/test state=directory mode=0755"

创建文件:文件已经存在,不影响
ansible vm3 -m file -a "path=/tmp/test.txt state=touch"

修改文件权限信息:
ansible vm3 -m file -a "path=/tmp/test.txt owner=root mode=666 group=hadoop"

创建软链接:
ansible vm3 -m file -a "src=/tmp/test dest=/tmp/newtest owner=read mode=755 state=link force=yes"

删除文件:
ansible vm3 -m file -a "path=/tmp/cc.txt state=absent"

7 user #管理用户账号
参数
name  创建的用户名称
uid   指定用户的uid信息
group    指定属于主要组
groups   指定属于哪个附属组
password 设置用户密码信息???
shell    指定登录方式 /bin/bash  /sbin/nologin
create_home:
创建用户:
ansible vm3 -m user -a "name=read uid=1005 group=hadoop shell=/sbin/nologin create_home=no"
ansible vm3 -m user -a "name=read123 uid=1005 group=hadoop,read  append=yes shell=/bin/bash home=/home/read123 state=present"
#append 表示追加,read123除了属于自己的属组外,还属于hadoop,read组
#id read  远程主机上
uid=1005(read) gid=1000(hadoop) groups=1000(hadoop)

修改用户:修改组,覆盖原来的组,而非增加
ansible vm3 -m user -a "name=read123 group=read456 append=no"

修改用户过期时间:
ansible vm3 -m user -a "name=read123 expires=100000"

删除用户:
ansible vm3 -m user -a "name=read123 state=absent remove=yes"

修改用户密码:
ansible vm3 -m user -a "name=read shell=/bin/bash password=asdfghjk update_password=always"


8 cron #定时任务,批量添加设置定时任务信息
如:ansible hosts -m cron -a "name='crontab test' minute=5 hour=1 job='echo test'"
参数:
minute  hour   day   month  weekday  --- 时间参数
job     -- 指定定时任务信息
name    -- 添加注释信息
state   -- absent 删除定时任务 present 添加定时任务
disabled   -- 注释定时任务 yes  取消定时任务注释 no
配置定时任务,每隔1分钟:
ansible vm3 -m cron -a "name=cron-test minute=*/1 job='sh /tmp/shell.sh >> /tmp/cron.txt 2>&1'"
#Ansible: cron-test
*/1 * * * * sh /tmp/shell.sh >> /tmp/cron.txt 2>&1
删除定时任务:
ansible vm3 -m cron -a "name=cron-test state=absent"
批量注释定时任务:
ansible vm3 -m cron -a "name=cron-test state=absent disabled=yes"


9 script #将本机的脚本在被管理端的机器上运行,不会把脚本下发到远程主机上
ansible vm3 -m script -a "shell.sh"


10 yum模块:批量下载安装软件
参数:
name:  指定软件名称
state: 指定动作信息  installed
ansible vm3 -m yum -a "name=vsftpd state=installed"

从本地安装指定版本nginx
ansible vm3 -m yum -a "name=/usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present"
从网络安装指定版本nginx
ansible vm3 -m yum -a "name=http:/nginx.org/packages/centos/6/noarch/RPMS/nginx-release-cento8-6-0.el6.ngx.noarch.rpm state=present"

11 service模块:管理服务状态模块
作用:批量启动/停止服务程序  设置服务是否开机自动启动
参数:
name:   定义服务名称
state:  是否启动started;停止stopped;重启restarted;平滑重启reloaded
enabled:设置服务是否开机自动启动
ansible vm3 -m service -a "name=httpd state=started enabled=yes"

12 mount模块:挂载
参数:
src:需要挂载存储设备信息
path: 挂载点路径信息
fstype:挂载类型信息
state:挂载操作(mounted present)/卸载操作(unmounted absent)
mounted:可以实现立即挂载  永久开机自动挂载
present:永久开机自动挂载
unmounted:可以实现立即卸载
absent:可以实现立即卸载  永久卸载
ansible vm3 -m mount -a "src=192.168.1.90:/data path=/applog fstype=nfs state=mounted"

 

标签:tmp,常用,name,ansible,模块,test,txt,vm3
From: https://www.cnblogs.com/skyzy/p/16890943.html

相关文章

  • SDC文件常用时序约束语句
    时钟约束1.基本约束create_clocks-nameclk_name-period10[get_portsclk_in]这是最基本的时钟约束语句,为时钟管脚创建一个时钟,综合工具会根据创建的时钟进行布局......
  • 常用的用户名和密码的三级验证
    //用户名匹配exportfunctionnameRule(rule,value,callback){//请输入4-10位昵称letreg=/(^[a-zA-Z0-9]{4,10}$)/;if(value===""){callback(newError("......
  • 11.Series常用属性和方法
    3)Series的基本概念可以把Series看成一个定长的有序字典可以通过shape,size,index,values等得到series的属性可以使用head(),tail()分别查看前n个和后n个值当索引没......
  • 嵌入式-Linux常用初级指令和介绍
    ls:列出当前文件夹下有哪些文件 ls-a:显示所有文件,包括隐藏的文件和文件夹pwd:显示在当前哪个文件夹下面  mkdir+新建文件夹名称:新建文件夹  进入文件夹:cd+......
  • php filter函数库 (与变量和类型有关的扩展),可以过滤常用邮件,IP,变量数组等...
     filter扩展库简介 Thisextensionfiltersdatabyeithervalidatingorsanitizingit.Thisisespeciallyusefulwhenthedatasourcecontainsunknown(orfore......
  • node的模块讲解
    node的模块划分 内置模块(不需要安装的)http(提供http服务的)fs(fileSystem文件系统)url(url地址)path(路径)event(事件源)net(通信)io(流)... 第三方模块(需要安装)expressmd......
  • Maven项目分模块开发
    Maven项目分模块开发1.分模块开发设计按照功能拆分我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行......
  • git常用指令速查
    重要指令:工作流程图上的7个指令(clone+fetch+pull+checkout+add+commit+push)和2个常用指令(log+merge)常用指令速查:   --基本操作类:        gitinit......
  • linux清空日志文件内容的几种常用方法
    1.使用cp/cat/dd命令及dev/null设备来清空文件内容(1)通过cp复制/dev/null内容到指定文件cp/dev/nullfilename.out(2)通过cat命令显示/dev/null内容,重定向到指定文件cat/......
  • 58. vue常用的api
    1. nextTick 使用场景:通过异步渲染的页面解构不能直接dom操作,要使用nextTick(延迟回调)等待一下;nextTick的作用:感知dom的更新完成,类似于updated;2.set用来追加响......