playbook

ansible服务的基础使用

隐身守侯 提交于 2019-11-26 16:12:16
Ansible介绍 ansible是一款的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: 1、连接插件connection plugins:负责和被监控端实现通信; 2、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; 3、各种模块核心模块、command模块、自定义模块; 4、借助于插件完成记录日志邮件等功能; 5、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 二、Ansible特性 1、no agents:不需要在被管控主机上安装任何客户端; 2、no server:无服务器端,使用时直接运行命令即可; 3、modules in any languages:基于模块工作,可使用任意语言开发模块; 4、yaml,not code:使用yaml语言定制剧本playbook; 5、ssh by default:基于SSH工作; 6、strong multi-tier solution:可实现多级指挥。 三、Ansible优点 1、轻量级

Ansible中Playbook的光速教程

时光怂恿深爱的人放手 提交于 2019-11-26 00:55:27
什么是Playbook? playbook 是由一个或者多个模块组成的, 使用多个不同的模块, 完成一件事。 playbook 通过 yaml 语法来识别描述的状态文件, 扩展名为 yaml 。 Playbook的三个语法特点 缩进 YAML使用一个固定的缩进风格表示层级结构, 每个缩进由两个空格组成, 不能使用 Tab 。 冒号 除了以冒号为结尾的以外, 其他所有的冒号后面必须要有空格。 短横线 表示列表项, 使用一个短横线加一个空格。 多个项使用同样的缩进级别作为同一列表。 一个安装Httpd的简单实例: # ansible install httpd - hosts: # 这里是需要安装的机器列表, 也可以是ansible配置好的组名 - 192.168.199.110 - 192.168.199.180 tasks: # 任务块 - name: install httpd server # 描述信息 yum: # ansible 模块 name: httpd,lrzsz # 需要安装的软件名称 state: installed # 执行动作 - name: start httpd server service: name: httpd state: started enabled: yes Playbook 常用到的关键字 hosts

Ansible之Playbook详解、案例

随声附和 提交于 2019-11-26 00:22:12
playbook-剧本 介绍 playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是playbook是通过YAML格式来进行描述定义的。   核心元素 Tasks:任务,由模板定义的操作列表 Variables:变量 Templates:模板,即使用模板语法的文件 Handlers:处理器 ,当某条件满足时,触发执行的操作 Roles:角色 hosts和users介绍 在playbook中的每一个play都可以选择在哪些服务器和以什么用户完成,hosts一行可以是一个主机组、主机、多个主机,中间以冒号分隔,可使用通配模式。其中remote_user表示执行的用户账号。 --- - hosts: abc #指定主机组,可以是一个或多个组。 remote_user: root #指定远程主机执行的用户名 指定远程主机sudo切换用 # vim ping.yml --- - hosts: abc remote_user: root become: yes #2.6版本以后的参数,之前是sudo,意思为切换用户运行 become

Ansible入门与playbook实战

不问归期 提交于 2019-11-25 21:57:53
一、简要 1、关于Ansible Ansible是一个部署一群远程主机的工具;Ansible通过SSH协议实现远程节点和管理节点之间的通信。理论上说,只要管理员通过ssh登录到一台远程主机上能做的操作,Ansible都可以做到。Ansible是python开发的,故依赖一些python库和组件,如:paramiko,PyYaml和jinja三个关键组件; 2、ansible架构: 右边绿色部分是被管理的主机(虚拟机,物理机,云主机等)从以上架构图中可以看出 ansible是由主机清单(配置),playbook(配置),以及各模块插件组成; 简单的说就是,用户(管理员)通过ansible的主机清单配置或Playbook配置(一组任务),调用ansible的各种模块及参数来对 清单中的主机进行统一管理; 3、测试环境 本次测试环境: ansible: CentOS7.4_x64 172.16.3.167 epel yum安装ansible node1: 172.16.3.152 CenOS7.2_x64 node2: 172.16.3.216 CentOS7.2_x64 从ansible上生成ssh私钥并把对应公钥同步到两台node主机上,实现无密钥登录管理(推荐) [root@ansible ~]# ssh-keygen -t rsa 直接回车生成私钥; 同步到到两台node上

Ansible之playbook的使用

↘锁芯ラ 提交于 2019-11-25 20:58:31
playbook介绍 一. 为什么引入playbook 我们完成一个任务,例如安装部署一个httpd服务,我们需要多个模块(一个模块也可以称之为task)提供功能来完成。而playbook就是组织多个task的容器,他的实质就是一个文件,有着特定的组织格式,它采用的语法格式是YAML(Yet Another Markup Language)。YAML语法能够简单的表示散列表,字典等数据结构。具体请参考 YAML详细语法 YAML基本语法 列表:每一个列表成员前面都要有一个短横线和一个空格 fruits: - Apple - Orange - Strawberry - Mango 或者: fruits: ['Apple', 'Orange', 'Strawberry', 'Mango'] 字典:每一个成员由键值对组成,注意冒号后面要有空格 martin: name: Martin D'vloper job: Developer skill: Elite 或者 martin: {name: Martin D'vloper, job: Developer, skill: Elite} 列表和字典可以混合使用 - martin: name: Martin D'vloper job: Developer skills: - python - perl - pascal - tabitha: