『RHCA-Ansible』
ansible ansible-playbook
Mr. Sun_
欢迎小伙伴来到博客,共同学习,一同进步。
展开
-
ansible所有模块一览
ansible所有的模块均可以在服务器上使用命令进行查看,查看所有模块使用ansible-doc -l查看模块的参数和用法可以使用anisble-doc -s module所有模块一览Aa10_server 管理A10 Networks AX / SoftAX / Thunder / vThunder设备a10_service_group 管理A10网络设备的服务组a10_virtual_server 管理A10网络设备的虚拟服务器acl 设置和检索文件ACL信息。add_host 将主机(转载 2020-06-22 11:31:54 · 4982 阅读 · 4 评论 -
Ansible之roles角色
一、Ansible Roles角色Roles小技巧:1.创建roles目录结构,手动或使用ansible-galaxy init test roles2.编写roles的功能,也就是tasks。 nginx rsyncd memcached3.最后playbook引用roles编写好的tasks使用roles编写nginx playbookmkdir /root/roles/nginx/{tasks,templates,handlers}##tasks[root@manage.转载 2020-05-27 09:40:24 · 203 阅读 · 0 评论 -
Ansible之Jinja2模板
本篇文章以偏向于举例说明。一、jinja2的基本概述jinja2是Python的全功能模板引擎二、jinja2模板与ansible的关系Ansible通常会使用jinja2模板来修改被管理主机的配置文件。三、Ansible使用jinja2模板使用template模块来拷贝文件template与copy的关系区别:template会解析配置文件中的变量,先渲染,后拷贝copy 不会解析任何的变量,只会拷贝文件关系:Ansible允许jinja2模板中使用判断 循环转载 2020-05-27 09:33:49 · 915 阅读 · 2 评论 -
playbook 条件and循环
条件判断语句我们可能会有这样的需求,需要根据不同的操作系统,安装相同的软件包。比如在Centos的操作系统中,安装的apache的服务是httpd. 而在unbutu的操作系统中,安装的apache的服务是httpd2.因此 ,我们如果还是按照之前的方式安装apache服务的话, 就会出现错误,因此,我们需要在playbook中引入条件判断语句使用的方法,非常的简单:when[root@m01 project2]# cat when.yml - hosts: webservers ta.原创 2020-05-26 23:15:13 · 301 阅读 · 0 评论 -
ansible-playbook文件复用
1. ansible-playbook文件复用 1.1) include 和 import区别 include(动态):在运行时导入--list-tags,--list-tasks不会显示到输出 不能使用notify触发来自include内处理程序名称(handlers) import(静态):在playbook解析时预先导入不能与循环一起使用 将变量用于目标文件或角色名称时,不能使用inventory(主机/主机组等)中的变量2. import_playbook 2.1...原创 2020-05-26 23:11:07 · 289 阅读 · 0 评论 -
Ansible-playbook之notify&handler
Handler section 在Ansible Playbook中,handler事实上也是个task,只不过这个task默认并不执行,只有在被触发时才执行。 handler通过notify来监视某个或者某几个task,一旦task执行结果发生变化,则触发handler,执行相应操作。 handler会在所有的play都执行完毕之后才会执行,这样可以避免当handler监视的多个task执行结果都发生了变化之后而导致handler的重复执行(handler只需要在最后执行一次即可原创 2020-05-26 14:02:58 · 1088 阅读 · 0 评论 -
Ansible-Playbook之tags
tags标签: 通过此标签来指定playbook文件执行哪条命令,应该不难理解。举例:#vim pbook.yml写入以下内容:- hosts: all remote_user: root gather_facts: no #不采集对方机器的数据,提高执行速度 tasks: - name: copy copy: content="apple" dest=/tmp/mama.txt tags: copy1 # 标签名是copy1,在下面执行文件时会用到 - ...原创 2020-05-26 13:56:34 · 263 阅读 · 0 评论 -
Ansible常用模块
pingping模块用来检查目标主机是否在线例子:ansible webserver -m ping-------------------------------------------------------------------------yumyum模块用来在Centos系统上使用yum命令安装软件包选项:name:指定安装包的名字state:latest安装最新版present默认安装installed安装absent 卸载remo...原创 2020-05-25 11:20:27 · 237 阅读 · 0 评论 -
ANSIBLE PLAYBOOK VARIABLES
What Makes A Valid Variable Name变量名称应为字母,数字和下划线。变量应始终以字母开头。foo_port是一个正确的变量。foo5也是。foo-port,fooport,foo.port和12都不是有效的变量名。YAML还支持将键映射到值的字典。例如:foo: field1: one field2: two然后,您可以使用括号符号或点表示法引用字典中的特定字段:foo['field1']foo.field1这两者都...原创 2020-05-24 23:01:35 · 526 阅读 · 0 评论 -
ansible的variables说明
ansible中的变量主要来源于,楼主总结了一下,大概有这么几个地方吧 Inventory(host vars,group vars) playbook里面 命令行 playbook执行task过程中产生结果,可以register起来,作为变量给下面的task使用 roles里面 来自于nodes上面的facts 这些类型的变量,1-4一般来说都是咱们用户自己定义的,而5facts则主要是ansible从nodes上面拉取过来的,当然facts也可转载 2020-05-24 22:53:23 · 460 阅读 · 0 评论 -
ansible中使用变量的地方
Ansible中使用到变量的情形大致有7种,以下图片是我从视频中的摘取,下一篇做详细说明。原创 2020-05-24 22:48:38 · 288 阅读 · 0 评论 -
ansible使用密码远程登录
服务器: 192.168.80.1node1 192.168.80.2node2 192.168.80.3node3 修改/etc/hosts192.168.80.1 node1192.168.80.2 node2192.168.80.3 node3修改ansible hostsvim /etc/ansible/hosts[k8s]k8smaster ansible_ssh_user=root ansible_ssh_port=22 ansi...原创 2020-05-24 14:30:20 · 2766 阅读 · 0 评论 -
Ansible查找ansible.cfg文件的位置及顺序
1)ANSIBLE_CONFIG:首先,Ansible命令会检查环境变量,及这个环境变量将指向的配置文件2)./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件3)~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件4)/etc/ansible/ansible.cfg:最后,将会检查在用软件包管理工具安装Ans...原创 2020-05-07 16:53:59 · 3261 阅读 · 0 评论 -
Ansible单行替换模块lineinfile
lineinfile 是 Ansible 的一个非常实用的模块,它可以使用 Python 的正则表达式确保一行特定的文本存在(state=present)或者不存在(state=absent)于指定的文件中。1、lineinfile 模块的常用参数path 参数:必须指定的参数。 和 file 模块的 path 参数一样,指定要操作的文件。 别名:dest, destfile, n...转载 2020-03-12 14:51:19 · 1896 阅读 · 0 评论 -
ansible file模块
file模块主要的用于远程机器上的文件操作,file模块包含一下force:需要在两种情况下强制创建软连接,一种是源文件不存在但之后会建立的情况,另一种是目标软连接已存在,需要先取消之前的软连接,然后在创建软连接,两种选项yes|nogroup: 定义文件目录属性mode:定义文件目录的权限owner:定义文件目录的属性path:必选项,定义文件目录的路径recurse...原创 2020-03-12 14:12:21 · 742 阅读 · 0 评论 -
ansible之template介绍
ansible之template介绍ansible的template模块,(在puppet叫资源),可以将带有参数的配置文件传递到目标地址,可以对文件进行属组属主的修改以及备份。backup no no yes/no 建立个包括timestamp在内的文件备份,以备不时之需. dest yes 远程节点上的绝对路径,用于放置tem...转载 2020-03-12 13:24:18 · 926 阅读 · 2 评论 -
ANSIBLE GALAXY
命令行工具ansible-galaxy命令与Ansible捆绑在一起,您可以使用它从Galaxy或直接从基于git的SCM安装角色。您还可以使用它在Galaxy网站上创建新角色,删除角色或执行任务。默认情况下,命令行工具使用服务器地址https://galaxy.ansible.com与Galaxy网站API通信。由于Galaxy项目是一个开源项目,您可能会运行自己的内部Galaxy服...转载 2020-03-11 08:39:15 · 490 阅读 · 0 评论 -
细说Ansible主机清单inventory
前言关于Ansible是什么,我在之前的文章中没有说;当然了,我这里也不会说。当你看到我写的这篇文章时,我想你已经知道了Ansible是什么了,如果您还不知道什么是Ansible是什么,那我的建议是先去百度一下,知道了Ansible是什么了,知道了Ansible能干什么了以后,再回过头来继续阅读我这里的总结。在Ansible中,有两个非常重要的概念,就是管理主机和被管理远程主机。管理主...原创 2020-03-09 12:29:09 · 366 阅读 · 0 评论 -
ansible之vault
ansible-vault主要用于配置文件的加密,如编写的playbook配置文件中包含敏感的信息,不希望其他人随便的看,ansible-vault可加密/解密这个配置文件。语法:ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]参数:-h,...原创 2020-02-03 01:16:09 · 800 阅读 · 0 评论 -
Ansible常用模块-copy模块
一、概述copy 模块的作用就是拷贝文件,它与 fetch 模块类似,不过,fetch 模块是从远程主机中拉取文件到 ansible 管理主机,而 copy 模块是将 ansible 管理主机上的文件拷贝到远程主机中。二、常用参数src参数 :用于指定需要copy的文件或目录。dest参数 :用于指定文件将被拷贝到远程主机的哪个目录中,dest为必须参数。content参数 :当不使...转载 2020-02-02 17:24:36 · 543 阅读 · 2 评论 -
ansible之retry文件
.retry 文件每次在 Ansible-playbook 执行遇到失败时(部分 inventory 失败),系统会提示:to retry, use: --limit @/path/to/my_playbook.retry打开文件之后,发现其实里面只有一个失败inventory的hostname,只是在提醒用户,可以再次运行 ansible-playbook 并带上 --li...原创 2020-02-02 00:45:36 · 5046 阅读 · 0 评论 -
Ansible facts 缓存
什么是 Ansible factsAnsible facts 是远程系统的信息,主要包含IP地址,操作系统,以太网设备,mac 地址,时间/日期相关数据,硬件信息等信息。Ansible facts 对于需要根据远程主机的信息作为执行条件操作的场景非常有用。例如,根据远程服务器使用的操作系统版本,可以安装不同版本的软件包。或者也可以显示与每台远程计算机相关的一些信息,例如每台设备上有多少 RA...转载 2020-02-02 00:50:18 · 529 阅读 · 0 评论 -
ansible之fail用法
fail 模块,接输出自定义信息,通常和when模块连用- name: test fail: msg: "[Erro], The ID is not defined" when: ID is not defined - name: test1 ping: register: ping_test- name: test2 fail: msg: "P...原创 2020-02-01 22:48:37 · 2517 阅读 · 0 评论 -
ansible之filesystem和mount模块
远程格式化其他主机上硬盘用法选项[root@ansible ~]# ansible-doc -s filesystemless 436Copyright (C) 1984-2009 Mark Nudelmanless comes with NO WARRANTY, to the extent permitted by law.For information about th...转载 2020-02-01 22:26:42 · 2053 阅读 · 0 评论 -
ansible之block用法
block 模块 : 将多个任务组合成一个块,并且可以对这个块做条件判断,以及当块里面的任务失败时,进行失败处理。--- - hosts: hadoop remote_user: root gather_facts: no tags: t0 tasks: - name: block1 block: ...原创 2020-02-01 22:23:28 · 4265 阅读 · 0 评论 -
ansible debug模块学习笔记
ansible playbook可以将多个命令组合来执行,但是很多时候我们需要接收服务器的反馈,所以debug模块就非常重要了。模块说明调试模块,用于在调试中输出信息常用参数:msg:调试输出的消息var:将某个任务执行的输出作为变量传递给debug模块,debug会直接将其打印输出verbosity:debug的级别(默认是0级,全部显示)ansible-debug打印实例...原创 2020-02-01 22:06:43 · 1589 阅读 · 0 评论 -
ansible之register用法
ansible register 这个功能非常有用。当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register 。举个例子:我们需要判断sda6是否存在,如果存在了就执行一些相应的脚本,则可以为该判断注册一个register变量,并用它来判断是否存在,存在返回 succeeded, 失败就是 failed.- na...原创 2020-02-01 21:48:49 · 1854 阅读 · 0 评论 -
template引用系统变量(setup)
一、template引用系统变量ansible websrvs -m setup |grep ‘cpu’vim templates/nginx.conf.j2worker_processes {{ ansible_processor_vcpus+2 }};vim testtemplate.yml—– hosts:os6 remote_user: root...原创 2020-01-31 23:07:12 · 795 阅读 · 0 评论 -
Ansible的Galaxy包管理器
一、什么是Ansible Galaxy?Ansible Galaxy是Ansible的第三方插件管理和安装工具,其实就是包管理软件。作用类似于Ubuntu的apt,Centos的yum,Python的pip二、Ansible Galaxy官网https://galaxy.ansible.com/三、查找想要的第三方模块 例如查找balancer模块四、第三方...原创 2020-01-31 20:54:21 · 350 阅读 · 0 评论 -
Ansible之roles(角色)详解
一、roles介绍 角色(roles)是ansible自1.2版本开始引入的新特性,用于层次性,结构化地组织playbook。 roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地incl...转载 2020-01-31 19:43:53 · 63994 阅读 · 0 评论 -
ansible-playbook命令参数详解
Usage: ansible-playbook playbook.ymlOptions: --ask-vault-pass #ask for vault password #加密playbook文件时提示输入密码 -C, --check #don't make any c...原创 2020-01-31 13:06:16 · 4167 阅读 · 0 评论 -
Ansible的Ad-Hoc(临时命令)命令集配置详解
简介:Ad-Hoc简而言之是“临时命令”,英文中作为形容词有“特别的”,“临时”的含义。Ansible提供两种完成任务方式:一种是Ad-Hoc命令集,即命令ansible,另外一种就是Ansible-playbook了,即命令Ansible-playbook。Ad-Hoc适合解决一些简单或者平时工作中临时遇到的任务Ansible-playbook适合解决复杂或需固化下来的任务深...转载 2020-01-31 12:04:38 · 470 阅读 · 0 评论 -
Ansible的Playbook条件语句
简介在有的时候play的结果依赖于变量、fact或者是前一个任务的执行结果,或者有的时候,我们会基于上一个task执行返回的结果而决定如何执行后续的task。这个时候就需要用到条件判断。条件语句在Ansible中的使用场景:在目标主机上定义了一个硬限制,比如目标主机的最小内存必须达到多少,才能执行该task 捕获一个命令的输出,根据命令输出结果的不同以触发不同的task 根据不同目...转载 2020-01-30 21:40:12 · 1423 阅读 · 0 评论 -
Ansible安装模块yum
yum:安装软件、删除软件、升级所有软件、RPM安装。yum模块时针对centos,如果时ubuntu,则换成apt模块 name: 安装最新版本的apache yum: name=httpd state=latest name: 移除apache yum: name=httpd state=absent name: 安装一个特殊版本的apache yum: nam...原创 2020-01-30 21:32:34 · 732 阅读 · 0 评论 -
ansible之playbook循环(loop)
当有需要重复性执行的任务时,可以使用迭代机制。其使用格式为将需要迭代的内容定义为item变量引用,并通过loop语句指明迭代的元素列表即可。loop的值是python list数据结构,每个task会循环读取list的值,然后后key的名称是item,list里面也支持python字典。例子一:安装多个软件tasks: - name: "Install Packages"...原创 2020-01-30 21:04:16 · 2614 阅读 · 0 评论 -
Ansible.cfg配置文件详解
优先级说明熟悉Linux运维的同学,对于这个就非常有经验了。在Linux中,基本上99%的软件都有一个配置文件,而这些配置文件中配置了这些软件的运行方式等一些属性。同时,根据存放位置的不同,同一个软件,同样的配置文件的使用优先级也是不一样的。在Ansible中,它的配置文件是一个名为ansible.cfg的配置文件,ansible.cfg配置文件是以ini格式存储配置数据的。但是ansible...原创 2020-01-30 10:35:05 · 1381 阅读 · 0 评论