
Ansible
文章平均质量分 69
ansible
富士康质检员张全蛋
人生实难,唯有自渡。只有接受了真实现的现状和真实的自己,调整好心态,才能脚踏实地的活着,然后去发现角落处的那些惊喜和美好,去相信一切苦难困境都会过去!“即使身处阴沟,也要记得仰望星空”。
展开
-
Ansible ad-hoc 临时命令
ad-hoc 简而言之就是"临时命令",执行完即结束,并不会保存,也就是执行完一个模块就结束了,如果想让她反复运行,就不行了。不像将多个命令写到文件,可以反复运行。 命令示例∶ansible 'groups' -m command -a 'df -h',含义如下图所示;shell模块其实可以解决很多问题,但是只用这个模块肯定是不行的,而且shell模块无法保证幂等性,同时其他模块还包含其他的功能。 使用 ad-hoc 执行一次远程命令,注意观察返回结果的颜色;原创 2022-06-29 16:02:45 · 711 阅读 · 0 评论 -
Ansible 使用普通用户管理被控端
场景说明:ansible使用oldxu普通用户统一管理所有被控节点1:首先控制端,被控端,都需要有oldxu用户,被控端我就不做演示了2:将控制端oldxu用户的公钥推送到被控端oldxu用户下面,使得普通用户可以免密登入3.所有主机的 oldxu 用户都必须添加 sudo 权限。4.修改控制端/etc/ansible/ansible.cfg主配置文件,配置用户提权上面这些步骤都可以依托于ansible去做,root免密了,可以使用ansible的控制端去为所有的被控端添加用户,为其原创 2022-06-22 22:04:33 · 766 阅读 · 0 评论 -
Ansible 介绍 功能 特性 基础架构
Ansible是一个自动化管理工具,它的用法可以非常简单,只需学几个基本的模块就能完成一些简单的自动化任务,它的用法也可以非常难,不仅需要学习大量Ansible知识,还需要大量的实际应用去熟悉最优化、最完美的自动化管理逻辑。比较悲催的是Ansible的知识体系比较庞大,它的知识板块也比较零散,想要构建一个比较完善的Ansible知识体系确实稍有难度。但无论如何,千里之行始于足下,学习任何一个新知识,总归要从最基本的用法循序渐进地深入,并辅以逐渐展开的宏观结构,加上学习过程中的不断练习,最终构建出完善的知原创 2020-08-01 19:03:01 · 3154 阅读 · 0 评论 -
Ansible 配置文件
cfg是主配置文件,hosts是主机清单文件inventoryansible 配置文件里面定义了主机清单的位置,所以清单文件放在哪都行。将模块推送到了被控端,被控端要将模块存储到下面的位置,充当临时目录,然后去执行,执行完了删除。同时并发的数量,也就是5台,并行主机数量的下面就是ansible的sudo配置了,看你ansible是运行在超级管理员下面还是普通用户,一般的ansible多半是运行在超级管理员账户下面,这些不需要修改。默认远程端口22,如果是其他端口需要修改每次连接原创 2022-06-21 20:43:53 · 445 阅读 · 0 评论 -
Ansible Inventory 主机清单 和 如何匹配主机组
Inventory 文件主要用来填写被管理主机以及主机组信息;(逻辑上定义);默认Inventory文件为/etc/ansible/hosts;当然也可以自定义一个文件,当执行 ansible 命令时使用-i选项指定 Inventory 文件位置;inventory里面可以定义单个主机,一般都是去定义主机组。列出主机中有多少台主机 可以看到要输入yes/no将这行注释去掉,那么就是不去验证了 因为在配置文件中谢啦远程端口为22,所以这里可以省略。写用户名密码很费劲,还有一种方式原创 2022-06-21 21:28:27 · 1348 阅读 · 1 评论 -
Ansible 变量使用详解(三)
承接前文,这篇文章将继续介绍变量的一些使用方法。注册变量ansible的模块在运行之后,其实都会返回一些"返回值",只是默认情况下,这些"返回值"并不会显示而已,我们可以把这些返回值写入到某个变量中,这样我们就能够通过引用对应的变量从而获取到这些返回值了,这种将模块的返回值写入到变量中的方法被称为"注册变量",那么怎样将返回值注册到变量中呢?我们来看一个playbook示例----hosts:test70remote_user:roottasks:-name:...原创 2020-10-29 17:47:31 · 1381 阅读 · 0 评论 -
Ansible 学习不迷茫∶如何将Ansible学至精通
曾经有个Linux运维,后来他累了,在真正开始聊Ansible之前,我想先给各位讲个故事。小安很早以前就是一名Linux运维工程师,他的基础很扎实,常用工具、公司涉及的服务以及公司的运维流程都比较熟悉。比如他能熟练地使用Shel脚本去做一些日常的运维管理,Shll脚本不方便的时候也能写写PHP和Per脚本来给自己的工作添一点色彩。由于这时公司环境比较小,小安管理的资源也比较少,所以那时候的运维工作对于小安来说,绝大多数时候就是打开远程连接工具(比如Xshell),点开他需要维护的几台主机的ssh连接转载 2020-07-30 15:43:23 · 1347 阅读 · 0 评论 -
Shell 脚本实现ansible免密认证 expect批量导入ssh公钥
作为一个运维工程师,不是每个人工作的环境都想阿里、腾讯那样,动不动就上亿的PV量,上万台服务器。我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个小工具达到的效果好。像ssh免密登录在配合pssh这样的推送工具,在配合自动化配置脚本,可以说是即方便也使用。本文章将详细带大家以shell脚本的形式实现ssh免密登录进行百台机器的配置和管理。ssh服务随着明文通信协议telnet渐渐退出历史舞台...原创 2020-07-25 17:21:36 · 876 阅读 · 0 评论 -
Ansible 制定演员表inventory即hosts解析
记录目标主机∶ inventory在没有对Ansible做任何配置的时候,Ansible只能通过localhost来控制本机,我们都是让Ansible指挥本机去执行任务,这离我们批量控制远程主机的目标还有点远。Ansible肯定是支持指挥远程主机执行任务的,如何指定哪些远程主机执行任务呢?让Ansible发挥强大作用的第一步是配置inventory。inventory表示清单的意思,在计算机领域里往往表示的资源清单,在Ansible中它表示主机节点清单,也是资源的一种。通过配置inventory,就原创 2020-08-06 17:43:26 · 768 阅读 · 0 评论 -
Ansible Ansible的灵魂∶playbook
Ansible playbookansible命令每次只能执行一个任务,这种运行方式称为Ad-hoc(点对点模式),不考虑Ansible特性的话,这功能比ssh远程执行命令还要弱。所以,Ansible靠ansible命令是撑不起自动化管理这把大伞的,Ansible真正强大的是playbook,它才是Ansible撬动自动化管理的结实杠杆。playbook、play和task的关系在前面介绍inventory的时候,将它类比为演员表,在这里,我继续对playbook、play 和task.原创 2020-08-28 17:20:53 · 387 阅读 · 0 评论 -
Ansible playbook的语法∶YAML
playbook的语法∶YAMLansible的playbook采用yaml语法,它以非常简洁的方式实现了json格式的事件插述。y aml之于json就像markdown之于html一样,极度简化了json的书写。YAML文件后缀通常为.yaml或.yml。YAML在不少工具里都使用,学习它是"一次学习、终生受益"的,所以很有必要把yaml 的语法格式做个梳理,系统性地去学—学。YAML的基本语法规则如下∶(1)使用缩进表示层级关系(2)缩进时不允许使用Tab键,只允许使用空格原创 2020-08-30 18:33:14 · 1296 阅读 · 0 评论 -
Ansible 导入剧本(import_playbook)和导入任务(import_tasks)
如果你的playbook包含了许多许多的功能,即包含了多个play,那么你需要整合所有任务到单个playbook中这里将前面所有playbook集合到单个playbook文件中去,这样就可以一次性执行所有任务。比如下面所示,这里只是举个例子,没有将全部展示出来。内容很长,可能你也感受到了,可读性很差,维护也很不方便。更友好的一种组织方式是将各个任务分类,各自存放在不同的playbook文件中(就像未整合那样),然后使用一个入口playbook文件引入所有任务文件。例如∶(1)配置主.原创 2020-09-09 16:46:29 · 5934 阅读 · 0 评论 -
Ansible 常用模块(一)
SELINUX 的策略配置 SELINUX 的策略, 需要重启机器参数 (= 必须):conf 如果不是标准设置,则需提供 SELinux 的配置文件路径 [Default: /etc/selinux/config]policy 当状态不是`disabled'时,SELinux使用的策略名 (example: `targeted') [Default: None]= state SELinux 模式 (Choices:.原创 2020-09-08 18:01:03 · 503 阅读 · 0 评论 -
Ansible 常用模块之文件操作copy|file文件拷贝与创建
前文中,我们已经介绍了怎样使用模块,而且我们知道,ansible有很多模块,每个模块都有自己的功能,"模块"涉及到的方向比较多,所以对于个人来说,并没有必要了解所有的模块,我们只需要根据实际的业务场景了解相应的模块即可,而且ansible比较贴心,ansible根据模块的功能对这些模块进行了大致的分类,比如,如果某些模块都是操作文件的,就把它们分类到文件类模块中,如果某些模块都是操作数据库的,就把他们分类到数据库类模块中,那么,ansible把模块分为了哪些类呢?你可以参考官方手册找到答案。上述链接..原创 2020-09-18 17:14:02 · 14646 阅读 · 1 评论 -
Ansible 常用模块之文件内容修改 blockinfile|lineinfile
Ansible yum模块实战conf_file 设定远程yum执行时所依赖的配置文件disable_gpg_check 安装之前是否检查gpg_keyname 软件名称,支持软件组安装update_cache 更新缓存enablerepo 指定repo源skip_broken 跳过异常软件节点state 包括:installed 、present、 latest 、absent 、原创 2020-09-14 16:51:23 · 7363 阅读 · 0 评论 -
Ansible 常用模块之文件操作查找与内容替换 find|replace
前文中已经总结了一些文件操作类的模块,如果你需要了解它们,可以查看我之前博客。这篇文章我们继续来了解一些文件操作类模块。find模块find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样。此处我们介绍一些find模块的常用参数,你可以先对这些参数有一个大概了解,然后再看小示例。paths参数:必须参数,指定在哪个目录中查找文件,可以指定多个路径,路径间用逗号隔开,此参数有别名,使用别名path或者别名name可以代替paths。 recurse参数:...原创 2020-09-22 17:13:19 · 3424 阅读 · 0 评论 -
Ansible template|cpoy模块
Ansible template模块当安装完redis以后,redis默认配置的监听地址为"127.0.0.1",这样是安全的,但是,如果我需要让redis监听在非"127.0.0.1"的IP地址上,以便让其他主机也能够使用本机上的redis服务,那么我就需要修改默认的配置,没错,修改redis配置文件中的bind设置,即可将redis绑定在指定的IP上,假设,现在需要一次性在10台主机上安装redis,并且让安装后的redis都监听在redis所在主机的非"127.0.0.1"的IP地址上,我们该怎么原创 2020-09-05 18:24:32 · 1716 阅读 · 0 评论 -
Ansible 常用模块之命令类模块 command|shell|script
在本博客中,ansible是一个系列文章,我们会尽量以通俗易懂的方式总结ansible的相关知识点。ansible系列博文直达链接:ansible轻松入门系列"ansible系列"中的每篇文章都建立在前文的基础之上,所以,请按照顺序阅读这些文章,否则有可能在阅读中遇到障碍。前文中,我们介绍了一些常用的文件类操作的模块,这篇文章中我们会介绍一些常用的命令类操作的模块。command模块command模块可以帮助我们在远程主机上执行命令注意:使用command模块在远程主机中执行命令...原创 2020-09-23 20:57:15 · 1734 阅读 · 0 评论 -
Ansible 常用模块之系统调用类模块 cron|service
前文中,我们介绍了一些常用的文件类模块和命令类模块,这篇文章中我们会介绍一些常用的系统类操作模块。cron模块在了解cron模块的参数之前,先写出一些计划任务的示例,示例如下示例1 5 1 * * * echo test 示例2 1 1 */3 * * echo test 示例3 @reboot echo test 示例4 @hourly echo test上述示例1表示每天的1点5分输出test字符上述示例2表示每3天执行一次计划任务,于当天的...原创 2020-09-28 20:28:59 · 272 阅读 · 0 评论 -
Ansible handlers的用法
这篇文章会介绍playbook中handlers的用法。不过在开始介绍它们之前,我们先来描述一个工作场景。当我们修改了某些程序的配置文件以后,有可能需要重启应用程序,以便能够使新的配置生效,那么,如果使用playbook来实现这个简单的功能,该怎样编写playbook呢?我们来试试,此处我们使用nginx作为示例,虽然nginx可以使用'nginx -s reload'命令重载配置,但是此处的示例中并不会使用这个命令,而是用nginx类比那些需要重启生效的应用。假设我们想要将nginx中的.原创 2020-10-15 23:36:08 · 749 阅读 · 0 评论 -
Ansible tags 的用法详解
这篇文章会介绍playbook中tags的用法。你写了一个很长的playbook,其中有很多的任务,这并没有什么问题,不过在实际使用这个剧本时,你可能只是想要执行其中的一部分任务而已,或者,你只想要执行其中一类任务而已,而并非想要执行整个剧本中的全部任务,这个时候我们该怎么办呢?我们可以借助tags实现这个需求。见名知义,tags可以帮助我们对任务进行'打标签'的操作,当任务存在标签以后,我们就可以在执行playbook时,借助标签,指定执行哪些任务,或者指定不执行哪些任务了,这样说可能不够...原创 2020-10-19 11:42:40 · 1771 阅读 · 0 评论 -
Ansible playbook 处理器(notify与handlers)
notify和handlers此前曾提到过,Ansible绝大多数的模块都具备幂等性,它能保证多次执行不会改变结果,这使得Ansible执行任务时更为安全。Ansible的模块如何去保证幂等性呢?以shell模块为例∶shell:cmd: echo haha >/tmp/only_once.txt creates: /tmp/only_once.txt这里使用了shel模块中的creates参数,它表示如果其指定的文件/tmp/only_once.txt存在,则不执行shell命原创 2020-09-02 17:31:07 · 3955 阅读 · 2 评论 -
Ansible 变量的使用详解
1、Playbook 变量ansible中使用变量,能够让我们的工作变得更加灵活定义变量变量名应该由字母、数字、下划线组成,变量名需要字母开头,ansible内置的关键字不能作为变量名使用2、Playbook 变量定义使用vars关键字可以在当前playbook中进行变量定义,让我们要使用变量的时候,则需要引用对应变量名,使用{{ 变量名 }}可以引用对应变量。变量简单定义[root@localhost ~]# cat vars.yml - hosts: all r.原创 2020-08-25 15:13:24 · 1046 阅读 · 0 评论 -
Ansible 变量使用详解(一)
在ansible中使用变量,能让我们的工作变得更加灵活,在ansible中,变量的使用方式有很多种,我们慢慢聊。先说说怎样定义变量,变量名应该由字母、数字、下划线组成,变量名需要以字母开头,ansible内置的关键字不能作为变量名。由于之前的几篇文章都是在通过剧本举例,所以我们先聊聊怎样在playbook中使用变量。PlayBook中变量定义如果我们想要在某个play中定义变量,可以借助vars关键字,示例如下:----hosts:test70vars:te...原创 2020-10-24 11:30:52 · 1088 阅读 · 0 评论 -
Ansible 变量使用详解(二)
前一篇文章中已经初步的总结了变量的一些使用方法,这篇文章我们继续,只不过,这篇文章所涉及到的内容需要借助两个模块,所以在详细的总结变量的相关使用方法之前,会先描述一下这两个模块的用法。当我们运行一个playbook时,默认都会运行一个名为"[Gathering Facts]"的任务,前文中已经大致的介绍过这个默认的任务,ansible通过"[Gathering Facts]"这个默认任务收集远程主机的相关信息(例如远程主机的IP地址,主机名,系统版本,硬件配置等信息),其实,这些被收集到的远程主机信息会原创 2020-10-28 17:17:12 · 1387 阅读 · 0 评论 -
Ansible 任务控制(循环loop、条件when)
loop循环除条件判断外, 另一种分支控制结构是循环结构。Ansible提供了很多种循环结构,一般都命名为with_Xxx,例如with_items、with_list、with_file等,使用最多的是with_items。在这里仅介绍loop循环,它是在Ansible 2.5版本中新添加的循环结构,等价于with_list。大多数时候,with_xx的循环都可以通过一定的手段转换成loop循环,所以从Ansible 2.5版本之后,原来经常使用的with_items循环都可以尝试转换成loo原创 2020-09-03 17:25:52 · 5130 阅读 · 0 评论