• 3 ansible常用模块命令 Sky


    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"
  • 相关阅读:
    Sql in VBA 之 初识ADO
    Excel读取Word Table元素
    工作表是否已存在函数
    按模板生成工作表
    多层字典对象应用案例分析
    字典的应用
    字典的基本功能
    Dictionary 对象
    File System Object(FSO对象)B
    File System Object(FSO对象)A
  • 原文地址:https://www.cnblogs.com/skyzy/p/16890943.html
Copyright © 2020-2023  润新知