2-ansible

ansible系列命令和ansible模块

ansible系列命令

1.ansible系列命令

  • ansible
  • ansible-doc
  • ansible-playbook
  • ansible-vault
  • ansible-console
  • ansible-galaxy ansible-pull
  • ansible-inventory

2.ansible-doc

  • Usage: ansible-doc [-l|-F|-s] [options] [-t ] [plugin]

  • 选项:

    • -a 显示所有模块的文档
    • -l, --list 列出可用模块
    • -s, --snippet显示指定模块的playbook片段
      • ansible-doc -s module 查看指定模块帮助用法
  • ansible-doc执行示例:

3.ansible

  • ansible通过ssh实现配置管理、应用部署、任务执行等功能,建议配置ansible端能基于 密钥认证的方式联系各被管理节点

  • ansible [-m module_name] [-a args]

    • –version
      显示版本
    • -m module
      指定模块,默认为command
    • -v
      详细过程 –vv -vvv更详细
    • –list-hosts
      显示主机列表,可简写 --list -k,
    • –ask-pass
      提示输入ssh连接密码,默认Key验证
    • -C, --check
      检查,并不执行
    • -T, --timeout=TIMEOUT
      执行命令的超时时间,默认10s
    • -u, --user=REMOTE_USER
      执行远程执行的用户
    • -b, --become
      代替旧版的sudo切换
    • –become-user=USERNAME
      指定sudo的runas用户,默认为root
    • -K, --ask-become-pass
      提示输入sudo时的口令
  • ansible的Host-pattern 匹配主机的列表

    • All :表示所有Inventory中的所有主机
      ansible all –m ping
    • * :通配符
      ansible 192.168.38.* -m ping
    • 或关系
      nsible “webserver:dbserver” -m ping
  • ansible 命令示例:


4.ansible-galaxy

  • 连接 https://galaxy.ansible.com 下载相应的roles
  • 列出所有已安装的galaxy
    ansible-galaxy list
  • 安装galaxy
    ansible-galaxy install geerlingguy.redis
  • 删除galaxy
    ansible-galaxy remove geerlingguy.redis

5.ansible-pull

  • 推送命令至远程,效率无限提升,对运维要求较高

6.ansible-playbook

  • 执行playbook

7.ansible-vault

  • ansible-vault功能:管理加密解密yml文件

  • ansible-vault [create|decrypt|edit|encrypt|rekey|view]

  • ansible-vault encrypt hello.yml 加密

  • ansible-vault decrypt hello.yml 解密

  • ansible-vault view hello.yml 查看

  • ansible-vault edit hello.yml 编辑加密文件

  • ansible-vault rekey hello.yml 修改口令

  • ansible-vault create new.yml 创建新文件

8.Ansible-console:2.0+新增,可交互执行命令,支持tab

  • root@test (2)[f:10] $ 执行用户@当前操作的主机组 (当前组的主机数量)[f:并发数]$
  • 设置并发数: forks n 例如: forks 10
  • 切换组: cd 主机组 例如: cd web
  • 列出当前组主机列表: list
  • 列出所有的内置命令: ?或help

ansible常用模块

  • 模块文档:
    https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

  • Command:在远程主机执行命令,默认模块,可忽略-m选项

    • command模块支持的主机命令有限,不支持 $VARNAME < > | ; & 等,用shell模块实现
    • 因此可以修改/etc/ansible/ansible.cfg文件[defaults] 模块的#module_name = command 更改为shell,将shell设为默认模块
      vim /etc/ansible/ansible.cfg
      [defaults]
      #module_name = shell
  • Shell:和command相似,用shell执行命令

    • 调用bash执行命令 类似 cat /tmp/stanley.md | awk -F’|’ ‘{print $1,$2}’ &> /tmp/example.txt 这些复杂命令,即使用shell也可能会失败,解决办法:写到脚本时,copy到远程,执行,再把需要的结果拉回执行命令的机器
  • Script:在远程主机上运行ansible服务器上的脚本

  • Copy:从主控端复制文件到远程主机

  • Fetch:从远程主机提取文件至主控端,copy相反,目前不支持目录

  • File:文件管理模块

  • unarchive:解包解压缩,有两种用法:
    1、将ansible主机上的压缩包传到远程主机后解压缩至特定目录,设置copy=yes,默认copy=yes。
    2、将远程主机上的某个压缩包解压缩到指定路径下,设置copy=no

  • Archive:打包压缩

  • Hostname:管理主机名

  • Cron:计划任务
    支持时间:minute,hour,day,month,weekday

  • Yum:管理包

  • Service:管理服务

  • User:管理用户

  • u Group:管理组

  • 表格形式:

    常见模块功能
    command在远程主机执行linux命令
    shell在远程主机执行linux命令
    script在远程主机运行ansible上的脚本
    copy从ansible主机复制文件至远程主机
    fetch从远程主机拉去文件至ansible主机
    fileansible主机对远程主机实现文件管理
    unarchive解包解压缩
    archive打包压缩
    hostnameansible管理远程主机的主机名
    cron计划任务
    yum包管理
    service服务管理
    user用户管理
    group组管理
  • 以上模块用法查看帮助: ansible-doc -s module

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值