2、ansible相关说明

2.1、ansible相关命令

ansible:定义并运行简单任务,主要执行ad-hoc命令
ansible-config:查看、编辑、管理ansible配置
ansible-connection
ansible-console:repl控制台执行ansible任务
ansible-doc:文档查看工具。控制台输入 ansible-doc -h 查看帮助各个参数说明,查看playbook片段使用 ansible-doc -s yum , 详细说明可以使用 -v -vvv -vvvv 参数
ansible-galaxy:共享和下载roles的工具
ansible-inventory:查看inventory的信息,可以把hosts的ini格式转成想要的json或者yaml
ansible-playbook:执行playbookansible-pull:从仓库中拉去playbook
ansible-vault:文件加密工具重点掌握ansible和ansible-playbook命
ansible-pull: 默认使用的是push模式,pull模式相反;适用于数量巨大的机器配置;没有网络连接的机器运行

2.2、ansible命令

格式:ansible -m -a
例子:ansible all -m shell -a 'date'
常见可选参数:

-m 模块名,默认不指定模式时,使用的是command模块。
-a 针对模块的具体命令,用单引号包含
-f 并行执行的设备数(默认5)
-o 简化输出(一行输出)
-i 指定 inventory 的路径(默认为 /etc/ansible/hosts)
-u 执行用户(默认root)
-P 后台执行(后跟数字表示隔多少秒轮询一次,为0表示静默执行)
-B 最大执行时长(单位秒)
-t 输出结果重定向
--syntax-check playbook语法检查,不执行

2.3、ansible主要配置文件

/etc/ansible/ansible.cfg 配置文件,以下是对默认文件修改

# 注意,ansible的执行用户为普通用户,因为每个机器都做了sudo,所以ansible.cfg需要设置切换root操作,以下列出修改
[privilege_escalation]
# become=True   # 取消总是以root执行,需要时加参数切换
become_method=sudo
become_user=root
become_ask_pass=False
# 以下是修改之后的执行效果,注意看输出
ansible lzcx -m shell -a "whoami"
ansible lzcx -m shell -a "whoami" -b

/etc/ansible/hosts 主机库(host inventory)
/etc/ansible/roles/ 公共角色,主要在自动化部署多台主机时应用
/usr/bin ansible执行命令存放目录,ansible,ansible-doc,ansible-playbook等等

2.4、inventory介绍

Inventory 文件遵循 ini 文件风格,[] 标记分组,方便对机器列表的管理
inventory 支持配置设置支持 ip,主机名,ip区域,ssh端口,连接类型(默认ssh)和连接用户,主机变量,添加关键字作为配置组变量
静态 Inventory 指的是在文件中指定的主机和组,动态 Inventory 指通过外部脚本获取主机列表,并按照 ansible 所要求的格式返回给 ansilbe 命令的。
设置组名时,尽量选择有意义的名字
以下是hosts文件的几种配置方法,举例说明,不一定用在这个实验环境

# 未分组的主机,添加在最前面
192.168.1.1.212
# 添加一个分组,并指定ip区域
[centos6]
192.168.1.[216:217]
# 指定连接类型和连接用户
[target1]
localhost ansible_connection=local
192.168.1.213 ansible_connection=ssh
ansible_ssh_user=operation
# 配置主机变量
[target2]
host1 http_port=80
host2 http_port=80 var2=xxx var3=xxx
# 添加关键字var,配置组变量,对属于该组的所有主机都适用
[target2:var]
var4=xxx
var5=xxx
# 添加关键字children,把组作为其他组的子成员
[target3:children]
target1
target2

2.5、主机列表的执行匹配规则

匹配规则主要有以下几种
逻辑匹配:全量 all/* 、逻辑或 | 、逻辑非 ! 、逻辑与 & 、切片 []
正则匹配:见下文详解

以下列举各种匹配类型
指定主机ip:直接指定ip运行,这里指定包括数字和字母指定

# 例
ansible 192.168.1.216 -m shell -a 'date'

指定主机名:前提是先将ip和主机名添加到系统hosts文件才能识别,将主机名添加到ansible的hosts文件,执行命令检查是否成功

# 例
echo '192.168.1.214 yuhui' >> /etc/hosts
echo 'yuhui' >> /etc/ansible/hosts
# 指定主机名
ansible yuhui -m shell -a 'date'

指定组名:组名指的是ansible目录下hosts文件的组名

# 例
ansible centos6 -m shell -a 'date'

ansible中正则匹配详解

匹配所有的主机:all

ansible all -a 'hostname'

匹配规则性主机或主机名

# 匹配后缀是 yk 的主机组
ansible *yk -a 'uptime'

匹配多个组的主机,中间用 : 隔开(或操作),可匹配多个主机组,格式 group_name:group_name:group_name...

# 匹配 mysql 和 centos6 2个主机组
ansible mysql:centos6 -a 'uptime'
# 匹配 mysql、centos6、gzyk 3个主机组
ansible mysql:centos6:gzyk -a 'uptime'

在某个组而不在其他组(非操作)

# 匹配在 my_vm 组但不在 centos6 组的主机,注意匹配范围是用 单引号'' 包含,双引号会报错
ansible 'my_vm:!centos6' -a 'hostname'

匹配两个组的交集(与操作)

# 匹配 my_vm 和 centos6 共有的主机
ansible 'my_vm:&centos6' -a 'hostname'

匹配一个组的特定主机

# 匹配 my_vm 组内的第二和第三个主机,应用了python的切片
ansible my_vm[1:2] -a 'date'

混合匹配

# 匹配 my_vm 和 yuhui组但不包含 centos6 组的主机
ansible 'my_vm:yuhui:!centos6' -a 'date'

匹配关键字开头:~

# 匹配 192.168.1.21 开头的主机
ansible '~192.168.1.21*' -a 'hostname'

指定执行 --limit 用法,ansible和ansible-playbook都支持

# 指定 my_vm 组里面的 192.168.1.216 执行
ansible my_vm -a 'hostname' --limit=192.168.1.216
# 用limit指定my_vm组里面的192.168.1.21前缀主机
ansible my_vm -a 'hostname' --limit=192.168.1.21*
ansible my_vm -a 'hostname' --limit=~192.168.1.21*

转载于:https://www.cnblogs.com/AutoSmart/p/10272532.html

ansible相关说明相关推荐

  1. Ansible相关笔记1

    inventory主机清单 ansible的主要功能在于批量主机操作,为了便捷地使用其中的部分主句,可以在inventory file中将其分组命名.默认的inventory file为/etc/an ...

  2. ansible 详解

    文章目录 一.ansible 简介 1.1 ansible 是什么? 1.2 ansible 特点 1.3 ansible 架构图 二.ansible 任务执行 2.1 ansible 任务执行模式 ...

  3. Ansible自动化运维工具使用

    概述 本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装 主机配置 Ad-Hoc command(命令行执行) Playbook (任务剧本) Ansible ...

  4. ansible 配置文件

    配置文件 两个核心文件:ansible.cfg和hosts文件,默认都存放在/etc/ansible目录下. ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径.模块.插 ...

  5. Ansible的简单使用

    ansible相关原理简单介绍: ansible是基于ssh服务.ssh服务一般服务器上都自带了. ansible 所有的工作都依赖于核心模块来完成,这些核心模块都是 ansible 自身携带的,若这 ...

  6. ansible 安不安全_如何向您的安全团队介绍Ansible

    ansible 安不安全 长期以来,Ansible不仅 被视为配置管理,它更是一个协调器,而不是任何东西,是乐队的指挥,而不是演奏单一的乐器. 自意识到这一点以来,各种技术社区已经使用Ansible来 ...

  7. Ansible入门使用

    最近在学习ansible,在此记录一下使用过程 --2017年12月21日 15:22:02 一:server端yum安裝Ansible serverip:192.168.1.46 # Redhat/ ...

  8. linux批量管理工具之ansible

    准备(前戏) 安装 yum install ansible 查看与ansible相关的文件信息 rpm -ql ansible|less 命令与选项 hosts基本语法 主机与组 [webserver ...

  9. 运维自动化之ANSIBLE

    成功不易,加倍努力! 运维自动化之ANSIBLE 本章内容 1 自动化运维应用场景 1.1 云计算运维工程师核心职能 1.2 运维职业发展路线 1.3 企业实际应用场景分析 1.3.1 Dev开发环境 ...

最新文章

  1. 层次聚类(cluster.AgglomerativeClustering)并通过TSNE进行可视化分析
  2. 轻松应对IDC机房带宽突然暴涨问题
  3. webservice restful一个小例子
  4. 只做决定的架构师会成为团队的瓶颈!
  5. 【错误记录】Groovy工程中的文件查找策略 ( main 函数中需要使用 src/main/groovy/Script.groovy | Groovy 脚本直接使用代码相对路径 )
  6. CocoaPods管理iOS的第三方类库
  7. 家乐福首家付费会员店遇到「喜与忧」背后,行业同质化问题浮出水面
  8. dvd管理器java,简单DVD管理-java练习题
  9. VisualStudio2019配置OpenCV
  10. 10个学习Android开发的网站推荐
  11. window7 已经分好区的硬盘如何再次分区?
  12. Deepin安装Eclipse
  13. java log4jhelper_java项目中log4j的日志,控制台跟文件日志级别都是info,为什么文件跟控制台输出的还不同呢?...
  14. 豪越智慧后勤解决方案(教育/高校)
  15. 真香!百度网盘超级会员等级制度,等级越高,特权越多!容量,解压,转存上限,回收站保存时间,全都有!
  16. 探索语句和表达式的本质
  17. 高中生参加的计算机奥赛是,电脑奥赛中最寂寥的竞赛 5学生夺牌直通清华
  18. gpd linux内核,linux内核驱动ZLG7290芯片
  19. Open3D 点云曲率计算
  20. Idea中new project项目与new module项目区别与验证

热门文章

  1. nagios全攻略(一)----准备阶段
  2. eWebEditor 错误 (不支持 ie7 ie8 maxthon 及其它浏览器)终极办法
  3. GD项目回顾之JWT
  4. window 命令行大全
  5. 不了解这12个语法糖,别说你会Java!
  6. 激进的中国技术选型,给世界技术的发展带来了什么?
  7. 浅析 Mybatis 与 Hibernate 的区别与用途
  8. 面试还在被红-黑树虐?看完这篇动图文章轻松反虐面试官
  9. java集合:ArrayList
  10. Python 海龟画图(turtle)常用的颜色单词