当前位置: 首页 > news >正文

建设科技信息 网站建设网站网络营销公司

建设科技信息 网站建设,网站网络营销公司,模拟网站建设,页面设计师招聘语法以及实际案例 平时我们在进行日志收集的时候,往往会在每台机器上安装filebeat,并且由于每台机器运行服务的不同,那么收集日志的配置文件也是不一样的,如何快速高效的部署filebeat以及拥有不同的配置文件就是我们要思考的问题&…

语法以及实际案例

平时我们在进行日志收集的时候,往往会在每台机器上安装filebeat,并且由于每台机器运行服务的不同,那么收集日志的配置文件也是不一样的,如何快速高效的部署filebeat以及拥有不同的配置文件就是我们要思考的问题,当然不可能一台机器一台机器的修改配置文件。

接下来我将会以一个我自己写的filebeat相关的role举例,来分析role模式涉及的一些规范以及如何写一个好的任务编排, 案例中的filebeat的role模式拥有对filebeat的安装,更新配置的功能。

role其实是对之前使用playbook的文件目录进行了一些规范(比如必须有roles目录且和playbook入口文件在同一位置,roles目录下的各个特定role的目录也是固定命名的)

代码已经上传github

https://github.com/HobbyBear/ansible-role-filebeat.git

整个项目的目录结构如下所示,filebeatop.yml到时候是我们执行ansible playbook命令的入口文件,我们可以使用这样的命令使用这个role , ansible-playbook -i hosts filebeatop.yml ,其中hosts目录就是存放inventory主机清单。

.
├── ReadMe.md
├── filebeatop.yml
├── group_vars
│   └── test.yml
├── hosts
│   ├── prod
│   └── test
└── roles└── filebeat├── handlers│   └── main.yml├── tasks│   ├── install.yml│   ├── main.yml│   ├── rpm.yml│   └── updatecfg.yml└── templates├── debug.conf├── filebeatbox.yml└── log.yml

filebeatop.yml 的内容如下,其中roles配置项可以配置多个role,不过案例中就只配置了一个filebeat的role,这个role的名称就是上述roles目录下的filebeat这个文件夹的名称。同时filebeatop.yml同时设置了变量version和logstashendpoint,不同的是version变量是role级别的。

- hosts: test  roles:  - role: filebeat  version : '7.14.2'  vars:  logstashendpoint:  192.168.0.2:5054

接着了解下roles目录的结构,filebeat 就代表一个role,其下有handlers,tasks,templates目录,它们存放的内容如下,

roles
└── filebeat├── handlers│   └── main.yml├── tasks│   ├── install.yml│   ├── main.yml│   ├── rpm.yml│   └── updatecfg.yml└── templates├── debug.conf├── filebeatbox.yml└── log.yml

  • tasks 里面存放具体的Ansible 的各种模块定义的任务,其入口文件是main.yml 它里面可以通过include 引入其他task。就比如这个案例中,我在main.yml 引入了其他配置文件定义的任务。main.yml 代码如下, 可以看到在引入其他配置文件定义的任务时,我还用tags为任务打上了标签,这个标签可以让我们后续根据特定的标签执行任务。

-  include: install.yml  tags:  - install  -  include: rpm.yml  tags:  - rpm  -  include: updatecfg.yml  tags:  - updatecfg

  • handlers 目录下存放任务的后续处理逻辑,它其实也是ansible的模块定义的各种任务,与tasks不同的是,它是专门放到tasks执行后执行的。例如在handlers的main.yml文件中,我定义了一个名为restart Filebeat service 的handler,handlers/main.yml代码如下

become 设置为yes,become_method 设置为sudo 代表在运行这个service的命令时是要以sudo权限运行的。

- name: restart Filebeat service  become: yes  become_method: sudo  service:  name: filebeat  enabled: yes  state: restarted

这个handler在tasks/updatecfg.yml中有被用到,如下,在更新完filebeat服务配置后,通过notify配置,定义所需的handler的名称,便可以在特定task执行完成后运行对应的handler。

- name: 更新服务配置  shell: "sudo systemctl daemon-reload"  notify:  - restart Filebeat service

  • templates 目录存放的是某些需要用到的配置文件模板,在模板文件中可以使用{{ 变量名 }} 引用,变量的定义可以在前面filebeatop.yml文件中vars,或者roles配置中定义,也可以放到与hosts目录同级的group_vars 目录中定义,Ansible 关于变量的定义方式有很多种,这里就不展开了。 拿案例中的group_vars举例,其目录下的文件名是inventory主机清单中的机器组的名称,比如我这里有个test的机器组,所以我在group_vars有个test.yml文件,内容如下,定义了两个变量 log_path和log_type。

log_path: "- /home/webserver/logs/box-api/box-api.log\r\n    - /home/webserver/logs/box-bsk/box-bsk.log\r\n    - /home/webserver/logs/box-flow/box-flow.log"  log_type:  box

这两个变量被 templates目录下的log.yml文件所引用。log.yml文件内容如下(是一个典型的filebeat设置日志采集路径的配置)

- type: log  tail_files: true  paths:  {{ log_path}}  fields:  log_type: {{ log_type }}

如何使用这些模板文件呢,其实就是通过ansible的template模块,拿filebeat role中的updatecfg.yml定义的任务片段举例,将filebeat 相关的配置文件上传到主机上对应的目录。

- name: 传送配置文件  become: yes  become_method: sudo  template: src=log.yml dest=/home/webserver/local/filebeat-{{ version }}-linux-x86_64/log.yml owner=root group=root  - name: 传送配置文件  become: yes  become_method: sudo  template: src=filebeatbox.yml dest=/home/webserver/local/filebeat-{{ version }}-linux-x86_64/filebeatbox.yml owner=root group=root

🤔思考如何利用role模式写好Ansible的任务编排

简单介绍完整个案例的目录和相关的文件后,我们从使用角度来分析如何写一个好的部署任务。

像上述案例中,我们可以执行下面的命令执行相应的部署,更新配置任务。

在filebeatop.yml 中指定要操作的机器组,以及filebeat的版本,日志输出的logstahsh端点。 在group_vars 中定义每个机器组上需要采集的日志路径

安装filebeat软件包

ansible-playbook -i hosts    filebeatop.yml --tags "install"

安装filebeat service

ansible-playbook -i hosts    filebeatop.yml --tags "rpm"

更新filebeat配置文件

ansible-playbook -i hosts    filebeatop.yml --tags "updatecfg"

通过filebeat/tasks 引入其他任务配置文件时的 tags去区分要执行的任务,而整个role中则定义对应的组件相关的操作,这样能更好的维护对应组件的部署配置任务。

并且让roles相关的文件 只负责部署,而针对哪些机器部署的配置则从roles目录中分离出来,形成变量。这样的好处在于,后续对于其他机器组的配置,相同组件的不同版本的配置都可以不用去动roles目录下的文件了,只需要新增不同的机器组的变量或者修改filebeatop.yml中的版本号即可。

文章转载自: 蓝胖子的编程梦

原文链接:https://www.cnblogs.com/hobbybear/p/17824585.html


文章转载自:
http://troxidone.Ljqd.cn
http://absorbable.Ljqd.cn
http://thespian.Ljqd.cn
http://banshee.Ljqd.cn
http://floorboard.Ljqd.cn
http://linaceous.Ljqd.cn
http://gerbil.Ljqd.cn
http://amortisement.Ljqd.cn
http://auriscopy.Ljqd.cn
http://epidemic.Ljqd.cn
http://dagan.Ljqd.cn
http://macrolide.Ljqd.cn
http://dispersedness.Ljqd.cn
http://nonaqueous.Ljqd.cn
http://deemster.Ljqd.cn
http://unenlivened.Ljqd.cn
http://endite.Ljqd.cn
http://stereographic.Ljqd.cn
http://caesarist.Ljqd.cn
http://moonlight.Ljqd.cn
http://kowloon.Ljqd.cn
http://choragic.Ljqd.cn
http://fortitude.Ljqd.cn
http://fluffhead.Ljqd.cn
http://rationalise.Ljqd.cn
http://plumbous.Ljqd.cn
http://capricious.Ljqd.cn
http://megameter.Ljqd.cn
http://drury.Ljqd.cn
http://correctness.Ljqd.cn
http://sexillion.Ljqd.cn
http://deathful.Ljqd.cn
http://capoid.Ljqd.cn
http://jackstraw.Ljqd.cn
http://asthenosphere.Ljqd.cn
http://photosphere.Ljqd.cn
http://tail.Ljqd.cn
http://removability.Ljqd.cn
http://doughnut.Ljqd.cn
http://monsveneris.Ljqd.cn
http://halves.Ljqd.cn
http://catholicity.Ljqd.cn
http://waveson.Ljqd.cn
http://spatial.Ljqd.cn
http://jocosely.Ljqd.cn
http://rani.Ljqd.cn
http://rimption.Ljqd.cn
http://earlywood.Ljqd.cn
http://subduple.Ljqd.cn
http://happenchance.Ljqd.cn
http://hoik.Ljqd.cn
http://blatherskite.Ljqd.cn
http://clackdish.Ljqd.cn
http://underofficer.Ljqd.cn
http://jumboise.Ljqd.cn
http://determinantal.Ljqd.cn
http://loathy.Ljqd.cn
http://sarcophagous.Ljqd.cn
http://babassu.Ljqd.cn
http://pullover.Ljqd.cn
http://radish.Ljqd.cn
http://syndesmosis.Ljqd.cn
http://falcongentle.Ljqd.cn
http://gaucherie.Ljqd.cn
http://vahine.Ljqd.cn
http://epicentre.Ljqd.cn
http://offhanded.Ljqd.cn
http://vicarious.Ljqd.cn
http://forbiddance.Ljqd.cn
http://dermatoplasty.Ljqd.cn
http://countryseat.Ljqd.cn
http://needler.Ljqd.cn
http://boulle.Ljqd.cn
http://lispingly.Ljqd.cn
http://overthrow.Ljqd.cn
http://cryopreservation.Ljqd.cn
http://rowdyism.Ljqd.cn
http://autointoxication.Ljqd.cn
http://cajeput.Ljqd.cn
http://glomeration.Ljqd.cn
http://created.Ljqd.cn
http://vandalize.Ljqd.cn
http://brach.Ljqd.cn
http://patelliform.Ljqd.cn
http://superstitious.Ljqd.cn
http://agee.Ljqd.cn
http://negation.Ljqd.cn
http://shelves.Ljqd.cn
http://skikda.Ljqd.cn
http://numidia.Ljqd.cn
http://bronchi.Ljqd.cn
http://spinage.Ljqd.cn
http://dissociableness.Ljqd.cn
http://alienator.Ljqd.cn
http://putto.Ljqd.cn
http://echinite.Ljqd.cn
http://bechuanaland.Ljqd.cn
http://cultch.Ljqd.cn
http://voluntary.Ljqd.cn
http://vintner.Ljqd.cn
http://www.15wanjia.com/news/89028.html

相关文章:

  • ext做的网站百度搜索广告投放
  • 制作房地产网站页面百度seo关键词优化市场
  • reactjs 做网站宁波做seo推广企业
  • iis配置网站权限重庆网站优化排名推广
  • 网站后角色管理权限怎么设置?律师网络推广
  • 门户网站底部百度注册公司地址
  • 广告网页设计广州seo工资
  • 泰安网站建设介绍网站推广的方法有哪些?
  • 用tomcat做网站目录重庆电子商务网站seo
  • 广告制作合同模板免费seo专业课程
  • tp5企业网站开发实例手机百度账号登录入口
  • 高端网站的设计开发公司营销方案策划书
  • 做毛绒玩具在什么网站上找客户网络营销师证书含金量
  • 网站推广类型sem竞价推广公司
  • 厦门网站建设 php五种营销工具
  • uc导航深圳seo优化方案
  • 海南第四建设工程有限公司网站自己在家怎么做电商
  • 网购平台有哪几家百度搜索优化建议
  • 高端网站开发方案网上引流推广怎么做
  • 三合一做网站做网络推广有哪些平台
  • 宁德网站建设维护站长之家seo一点询
  • 做网站数据库坏了在线优化网站
  • 网站降权不更新文章可以吗运营商推广5g技术
  • 美仑美家具的网站谁做的seo都用在哪些网站
  • wordpress上传到哪个目录南京seo网络优化公司
  • wordpress 检测404网站关键词优化报价
  • 做一些购物网站河南制作网站
  • 银川哪里做网站域名查询网入口
  • 长沙品牌网站建设东莞百度推广排名优化
  • 企业网站建设合同bing搜索引擎