playbook

ansible笔记(14):变量(三)

巧了我就是萌 提交于 2019-11-28 13:09:28
一、注册变量(register)       ansible的模块在运行之后,其实都会返回一些“返回值”,只是默认情况下,这些“返回值”并不会显示而已,我们可以把这些返回值写入到某个变量中,这样我们就能够通过引用对应的变量从而获取到这些返回值了, 这种将模块的返回值写入到变量中的方法被称为“注册变量” ,那么怎样将返回值注册到变量中呢?我们来看一个playbook示例: --- - hosts: 192.168.10.3 remote_user: root tasks: - name: test shell shell: "echo test > /test/testfile" register: testvar - name: shell moudule return values debug: var: testvar 上例中共有两个任务,第一个任务使用shell模块在192.168.10.3主机中创建了一个测试文件 /test/testfile,将字符“test&”输入到了测试文件中,然后使用“register”关键字将当前shell任务的返回值写入了名为“testvar”的变量中,第二个任务使用debug模块输出了第一个任务中的注册变量的值,没错,注册变量就是这么简单,使用register关键字指定对应的变量名即可。 上述playbook执行后,可以在控制台中看到名为“

ansible笔记(13):变量(二)

寵の児 提交于 2019-11-28 12:36:10
一、setup模块    前一篇文章中已经初步的总结了变量的一些使用方法,这篇文章我们继续,只不过,这篇文章所涉及到的内容需要借助两个模块,所以在详细的总结变量的相关使用方法之前,会先描述一下这两个模块的用法。 当我们运行一个playbook时,默认都会运行一个名为“[Gathering Facts]”的任务,前文中已经大致的介绍过这个默认的任务,ansible通过“[Gathering Facts]”这个默认任务收集远程主机的相关信息(例如远程主机的IP地址,主机名,系统版本,硬件配置等信息),其实,这些被收集到的远程主机信息会保存在对应的变量中,当我们想要使用这些信息时,我们可以获取对应的变量,从而使用这些信息。 如果想要查看“[Gathering Facts]”任务收集的信息内容,我们可以借助一个模块: setup模块 当执行playbook时,playbook其实就是自动调用了setup模块从而执行了"[Gathering Facts]"任务,所以我们可以通过手动执行setup模块查看“[Gathering Facts]”任务收集到的信息,示例如下: [root@ansible-control playbook]# ansible 192.168.10.3 -m setup 上述ad-hoc命令表示收集192.168.10.3主机的相关信息,执行上述命令后,远程主机192

ansible笔记(12):变量(一)

故事扮演 提交于 2019-11-28 12:23:22
在ansible中使用变量,能让我们的工作变得更加灵活,在ansible中,变量的使用方式有很多种,我们慢慢聊。 先说说怎样定义变量,变量名应该由字母、数字、下划线组成,变量名需要以字母开头, ansible内置的关键字不能作为变量名 。 由于之前的几篇文章都是在通过剧本举例,所以我们先聊聊怎样在playbook中使用变量。 如果我们想要在某个play中定义变量,可以借助vars关键字,示例如下: --- - hosts: 192.168.10.2 vars: testvar1: testfile remote_user: root tasks: - name: task1 file: path: /test/{{testvar1}} state: touch 上例中,先使用vars关键字,表示在当前play中进行变量的相关设置。 vars关键字的下一级定义了一个变量,变量名为testvar1,变量值为testfile 当我们需要使用testvar1的变量值时,则需要引用这个变量,如你所见,使用“{{变量名}}”可以引用对应的变量。 可以定义多个变量,如下所示: vars: testvar1: testfile1 testvar2: testfile2 也可以使用YAML块序列语法定义变量,如下所示: vars: - testvar1: testfile1 - testvar2:

Ansible剧本

瘦欲@ 提交于 2019-11-28 07:37:55
Ansible剧本 ad-hoc 临时实现批量管理功能(模块) playbook 永久实现批量管理功能(剧本) 使用ansible模块安装rsync服务 服务端的操作 第一个历程:安装软件: ansible 172.16.1.41 -m yum -a “name=rsync state=installed 第二个历程:编写文件: ansible 172.16.1.41 -m copy -a “src=/etc/rsync.conf dest=/etc/” 第三个历程:创建用户: ansible 172.16.1.41 -m user -a “name=rsync create_home=no shell=/sbin/nologin” 第四个历程:创建目录: ansible 172.16.1.41 -m file -a “dest=/backup state=directory owner=rsync group=rsync” 第五个历程:创建密码文件: ansible 172.16.1.41 -m copy -a “content=’rsync_backup:oldboy123’ dest=/etc/rsync.password mode=600” 第六个历程:启动服务: ansible 172.16.1.41 -m service -a “name=rsyncd state

ansible

早过忘川 提交于 2019-11-28 07:37:21
ansible Ansible : Ansible的核心程序 Host Lnventory : 记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载 Playbooks : YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能. Core Modules : Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。 Custom Modules : 自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。 Connection Plugins : 连接插件,Ansible和Host通信使用 1.Ansible优点: Stupied Simple ,上手简单,学习曲线平滑 SSH by default ,安全,无需安装客户端 配置简单、功能强大、扩展性强 支持API及自定义模块,可通过Python轻松扩展 通过Playbooks来定制强大的配置、状态管理 提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台 幂等性

Ansible playbook

倖福魔咒の 提交于 2019-11-27 21:29:39
一、简介 Ansible is a radically simple configuration-management, application deployment, task-execution, and multinode orchestration engine. Design Principles Have a dead simple setup process and a minimal learning curve Be super fast & parallel by default Require no server or client daemons; use existing SSHd Use a language that is both machine and human friendly Focus on security and easy auditability/review/rewriting of content Manage remote machines instantly, without bootstrapping Allow module development in any dynamic language, not just Python Be usable as non-root Be the easiest IT

ansible笔记(11):tags的用法

左心房为你撑大大i 提交于 2019-11-27 20:50:11
   你写了一个很长的playbook,其中有很多的任务,这并没有什么问题,不过在实际使用这个剧本时,你可能只是想要执行其中的一部分任务而已,或者,你只想要执行其中一类任务而已,而并非想要执行整个剧本中的全部任务,这个时候我们该怎么办呢?我们可以借助tags实现这个需求。   见名知义,tags可以帮助我们对任务进行“打标签”的操作,当任务存在标签以后,我们就可以在执行playbook时,借助标签,指定执行哪些任务,或者指定不执行哪些任务了,这样说可能不够直观,我们来看一个小示例(为了方便示例此处只写3个任务进行举例)。 --- - hosts: 192.168.10.3 remote_user: root tasks: - name: task1 file: path: /test/t1 state: touch tags: t1 - name: task2 file: path: /test/t2 state: touch tags: t2 - name: task3 file: path: /test/t3 state: touch tags: t3 如上例所示,上例的play中有3个task,每个task都有对应的tags,为了方便示例,我只是简单的把tags的值写成了t1、t2、t3,在实际的使用中,我们应该让tags的值能够见名知义,现在每个task都有了标签

linux批量管理工具之ansible

為{幸葍}努か 提交于 2019-11-27 15:48:31
准备(前戏) 安装 yum install ansible 查看与ansible相关的文件信息 rpm -ql ansible|less 命令与选项 hosts基本语法 主机与组 [webserver] www.exaple.com test.exaple.com [dbserver] one.example.com two.example.com 备注 :端口号不是默认的时候,可以表示为 www.exaple.com:5122 主机别名 如果有些静态IP地址,希望设置一些别名,但不是在系统的host文件中做解析 test_name ansible_ssh_port=5122 ansible_ssh_host=192.168.100.1 主机名扩展 可以像bash那样设置一组名称类似的主机 [webserver] web[01:50].example.com db-[a:f].example.com 自定连接 对于每一个host,还可以选择连接类型和连接用户名 [targets] other1.example.com ansible_connection=ssh ansible_ssh_user=sam other2.example.com ansible_connection=ssh ansible_ssh_user=mdehaan 主机变量 在hosts中给主机设置变量

Ansible Playbook安装Docker-CE

≡放荡痞女 提交于 2019-11-27 09:37:03
如果想给服务器安装docker,往往觉得 yum install docker 一条命令就可以了,然而并非如此,CentOS7的官方仓库并没有docker,所以需要先增加一个可以安装docker的仓库,如果要增加仓库,最好是使用 yum-config-manager ,所以思路就很清晰了: 卸载本机docker 增加docker仓库 安装docker 配置docker 所以我们需要按照以下命令执行: # 卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine # 安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加Repo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo # 更新并安装 yum makecache yum install -y docker

Ansible自动化运维之Playbook实战

…衆ロ難τιáo~ 提交于 2019-11-27 03:13:21
文章目录 Playbook简介 playbook语法 playbook的构成 修改vim编辑 playbook文件的编写说明以及举例 编写说明 执行playbook 给prod组的节点安装并开启httpd服务 修改httpd的端口(定义触发器) 将http加入防火墙列表中 template模块 修改apache端口 获取系统信息 Playbook简介 Playbook与ad-hoc相比,是一种完全不同的运用。 playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。 playbook中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤,并且可以同步或异步的发起任务。 使用playbook可以方便的重用这些代码,可以移植到不同的机器上面。 playbook才是ansible真正强大之处。 playbook语法 playbook由YMAL语言编写,以下为playbook常用到的YMAL格式: 文件的第一行应该以"- - -"三个连字符开始,表明YMAL文件的开始。 在同一行中,#之后的内容表示注释,类似于shell,python和ruby。 YMAL中的列表元素以”-”开头然后紧跟着一个空格,同一个列表中的元素应该保持相同的缩进。 一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格): --- #