• Ansible 常用模块


    setup

    获取主机信息

    ansible all -m setup                               # 采集主机的所有系统信息
    ansible all -m setup --tree /tmp/facts             # 以主机名为文件名分别保存在/tmp/facts 目录
    ansible all -m setup -a 'filter=ansible_*_mb'      # 过滤内存相关的信息
    ansible all -m setup -a 'filter=ansible_eth[0-2]'  # 网卡信息

    shell

    执行shell命令,可使用变量和管道

    ansible all -m shell -a "echo ssssss |head -c 3 "   全部主机执行命令
    ansible qqq -m shell -a "echo ssssss |head -c 3 "   qqq组的主机执行命令
    ansible "x.x.x.x, x.x.x.x" -m shell -a "echo ssssss |head -c 3 "   指定主机执行命令

    copy

    分发文件

    ansible qqq  -m copy -a "src=/home dest=/tmp  owner=qqq group=qqq backup=yes mode=600"
    ansible all -m copy -a 'content=hhh
    aaafff dest=/root/fff'
      
      
    相关选项
      backup:在覆盖之前,将源文件备份,备份文件包含时间信息。有两个选项:yes|no
      content:用于替代“src”,可以直接设定指定文件的值
      dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
      directory_mode:递归设定目录的权限,默认为系统默认权限
      force: 内容不同时,是否强制覆盖,yes:强制覆盖,no只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
      others:所有的file模块里的选项都可以在这里使用
      src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。
           如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容
           如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。

    file

    设置文件属性

    ansible qqq -m file -a "dest=/home/hhh mode=777"
    ansible qqq -m file -a "dest=/home/fff state=absent"
    相关选项如下:
      force:需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
      group:定义文件/目录的属组
      mode:定义文件/目录的权限
      owner:定义文件/目录的属主
      path:必选项,定义文件/目录的路径
      recurse:递归设置文件的属性,只对目录有效
      src:被链接的源文件路径,只应用于state=link的情况
      dest:被链接到的路径,只应用于state=link的情况
      state:
             directory:如果目录不存在,就创建目录
             file:即使文件不存在,也不会被创建
             link:创建软链接
             hard:创建硬链接
             touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
             absent:删除目录、文件或者取消链接文件

    cron

    管理crontab计划任务

    ansible all -m cron -a "minute='*/5' job='/root/fff fff' name='test'"   设置定时任务
    ansible all -m cron -a "name='test' state=absent"          删除定时任务
    相关选项如下:
      backup=    # 如果设置,创建一个crontab备份
      cron_file=          #如果指定, 使用这个文件cron.d,而不是单个用户crontab
      day=       # 日应该运行的工作( 1-31, *, */2, etc )
      hour=      # 小时 ( 0-23, *, */2, etc )
      job=       #指明运行的命令是什么
      minute=    #分钟( 0-59, *, */2, etc )
      month=     # 月( 1-12, *, */2, etc )
      name=     #定时任务描述
      reboot    # 任务在重启时运行,不建议使用,建议使用special_time
      special_time       # 特殊的时间范围,参数:reboot(重启时),annually(每年),monthly(每月),weekly(每周),daily(每天),hourly(每小时)
      
      state        #指定状态,prsent表示添加定时任务,也是默认设置,absent表示删除定时任务
      
      user         # 以哪个用户的身份执行
      weekday      # 周 ( 0-6 for Sunday-Saturday, *, etc )  

    user

    管理用户

    ansible all -m user -a "name=foo password=<crypted password here>"
    ansible all -m user -a "name=foo state=absent"  删除用户
    相关参数如下:
      comment    # 用户的描述信息
      createhom  # 是否创建家目录
      force      # 在使用`state=absent'是, 行为与`userdel --force'一致.
      group      # 指定基本组
      groups     # 指定附加组,如果指定为('groups=')表示删除所有组
      home       # 指定用户家目录
      login_class     #可以设置用户的登录类 FreeBSD, OpenBSD and NetBSD系统.
      move_home       # 如果设置为`home='时, 试图将用户主目录移动到指定的目录
      name=           # 指定用户名
      non_unique      # 该选项允许改变非唯一的用户ID值
      password        # 指定用户密码
      remove          # 在使用 `state=absent'时, 行为是与 `userdel --remove'一致.
      shell           # 指定默认shell
      state           #设置帐号状态,不指定为创建,指定值为absent表示删除
      system          # 当创建一个用户,设置这个用户是系统用户。这个设置不能更改现有用户。
      uid             #指定用户的uid
      update_password  # 更新用户密码
      expires         #指明密码的过期时间

    service 

    服务程序管理

    ansible webservers -m service -a "name=httpd state=started"    # 确保 webservers 组所有主机的 httpd 是启动的
    相关选项如下:
      arguments         #命令行提供额外的参数
      enabled=yes/no    #设置开机启动。
      name=             #服务名称
      runlevel          #开机启动的级别,一般不用指定。
      sleep             #在重启服务的过程中,是否等待。如在服务关闭以后等待2秒再启动。
      state             #started启动服务, stopped停止服务, restarted重启服务, reloaded重载配置
  • 相关阅读:
    基于 mysql 异步驱动的非阻塞 Mybatis【待验证】
    Hive SQL优化方式及使用技巧
    使用Guava-RateLimiter限流控制qps
    hive 时间戳函数之unix_timestamp,from_unixtime
    Hive实现自增列的两种方法
    shell 下 urlencode/urldecode 编码/解码的方法
    awk使用shell变量,shell获取awk中的变量值
    shell脚本删除远程过期文件
    linux下多进程同时操作文件
    hive学习----Hive表的创建
  • 原文地址:https://www.cnblogs.com/hanqian/p/7541984.html
Copyright © 2020-2023  润新知