Ansible剧本(playbook)编写
Playbook简介playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态。playbook就像Ansible控制器给被控节点列出的的一系列to-do-list,而被控节点必须要完成。也可以这么理解,playbook 字面意思,即剧本,现实中由演员按照剧本表演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情。 Playbook的使用优势 功能比ansible命令更强大 能很好的控制先后执行顺序, 以及依赖关系 语法展现更加的直观 ansible命令无法持久使用, playbook 可以持久使用 剧本的书写格式要求语法格式ansible剧本格式:遵循yaml语法格式(类似python脚本编写格式)rsync配置文件格式:ini语法格式sersync配置文件格式:xml语法格式(标签格式) 注意缩进合理的信息缩进,两个空格表示一个缩进关系一定不要使用tab 123标题一_ _ 标题二_ _ _ _ 标题三 冒号所有冒号后 ...
Ansible常用模块详解
Ansible常用模块介绍ansible内置了丰富的模块供用户使用,但是经常使用到的模块却不多。本文主要记录了ansible的一些常用模块以及详细参数 、注意事项等 ,供大家学习。 模块的应用语法格式:ansible 主机名称/主机组名称/主机地址信息/all -m(指定应用的模块信息) 模块名称 -a(指定动作信息) “执行什么动作” ansible官方网站: https://docs.ansible.com/ 命令模块ping应用场景:测试主机和ansible之间的连通性举例:对webserver主机组测试是否连通 1ansible webservers -m ping command 基础模块概要命令模块 适合使用简单的命令(cat、ls) 无法支持”<”,”>”,”|”,”;”,”&”等符号官方文档:https://docs.ansible.com/ansible/latest/modules/command_module.html#command-module 参数 解释 chdir 在执行命令前,进入到指定目录中 creates 判断 ...
Ansible自动化批量管理入门
ansible服务概念介绍 是基于python语音开发的自动化软件工具 是基于SSH远程管理服务实现远程管理主机 批量管理多台主机 提高运维工作效率 降低运维工作难度 ansible批量管理特点优点: 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作; 默认使用SSH协议对设备进行管理; 有大量常规运维操作模块,可实现日常绝大部分操作; 配置简单、功能强大、扩展性强; 轻链接、无需客户端(基于ssh,无需安装客户端,如zabbix的客户端要安装agent) 可读性强(采用YAML格式) 缺点: 对Windows系统的排斥(服务端无法安装在windows) 运行效率较低(task任务是串行运行;多台设备同事运行) ansible批量管理部署安装ansible yum -y install epel-releaseyum -y install ansible ansible服务架构信息 主机清单配置(inventory:默认文件:/etc/ansible/hosts) 软件模块信息(module 通过其他语言编写而成,能实现某个特定的功能的工具,例如思科配置 ...
kubernetes集群使用spinnaker完成自动化部署
Spinnaker 构建部署介绍Spinnaker 的集群管理和部署功能两大核心功能,但是都是单独演示,没有将两者有机结合起来,今天,我们来通过一个示例来演示如何通过 Spinnaker 结合外部平台完成整个流程的自动化构建以及自动化部署到 Kubernetes 集群中。下边,我针对该示例做一些必要的说明。 开发人员将代码推送到 GitHub。 GitHub 触发 Jenkins。 Jenkins 构建一个 Docker 映像,然后为它添加标签并推送到 Amazon Elastic Container Registry (Amazon ECR)。 Spinnaker 管道将在 Amazon ECR 收到此新 Docker 映像时触发。 然后 Spinnaker 将执行如下操作: 使用 Helm 生成 (Bake) Kubernetes 部署文件(开发和生产)。 将 Kubernetes 部署到开发环境。 人工判断:我们的管道配置需要人工手动确认,然后才能将应用程序部署到生产环境。它会等待此步骤完成,然后才会继续执行管道。 将代码部署到生产环境。 Spinnaker 上配置Je ...
kubernetes集群交付安装spinnaker自动化部署
spinnaker概述和选型概述主要功能Spinnaker是一个开源的多云持续交付平台,提供快速、可靠、稳定的软件变更服务。主要包含两类功能:集群管理和部署管理 集群管理集群管理主要用于管理云资源,Spinnaker所说的”云“可以理解成AWS,即主要是laaS的资源,比如OpenStak,Google云,微软云等,后来还支持了容器与Kubernetes,但是管理方式还是按照管理基础设施的模式来设计的。 部署管理管理部署流程是Spinnaker的核心功能,使用minio作为持久化层,同时对接jenkins流水线创建的镜像,部署到Kubernetes集群中去,让服务真正运行起来。 逻辑架构图Spinnaker自己就是Spinnake一个微服务,由若干组件组成,整套逻辑架构图如下: Deck是基于浏览器的UI。 Gate是API网关。Spinnaker UI和所有api调用程序都通过Gate与Spinnaker进行通信。 Clouddriver负责管理云平台,并为所有部署的资源编制索引/缓存。 Front50用于管理数据持久化,用于保存应用程序,管道,项目和通知的元数据。 Igor用于 ...
kubernetes集群交付一套ELK Stack日志分析
K8S ELK日志分析日志,对于任何系统来说都是及其重要的组成部分,在计算机系统中比较复杂,日志有不同的来源,如操作系统,应用服务,业务逻辑等,它们都在不停产生各种各样的日志。K8S系统里的业务应用是高度 “动态化”的,随着容器编排的进行,业务容器在不断的被创建、被销毁、被迁移、被扩缩容… 需要建立一套集中式的方法,把不同来源的数据集中整合到一个地方 收集—能够采集多种来源的日志数据(流式日志收集器) 传输—能够稳定的把日志数据传输到中央系统(消息队列) 存储—可以将日志以结构化数据的形式存储起来(搜索引擎) 分析—支持方便的分析、检索方法,最好有GUI管理系统(前端) 告警—能够提供错误报告,监控机制(监控工具) 开源解决方案—ELK Stack: E – ElasticSearch L – LogStash K – Kibana elasticsearch安装部署https://www.elastic.co/ https://github.com/elastic/elasticsearch https://artifacts.elastic.co/downloads/el ...
使用Prometheus联动Grafana监控kubernetes集群状态
Grafana的介绍与使用简介Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。 七大特点①可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。 ②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。 ③通知:警报更改状态时,它会发出通知。接收电子邮件通知。 ④动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。 ⑤混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。 ⑥注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。 ⑦过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。 Grafana安装部署准备镜像123[root@k8s-dns ]# docker pull grafana/grafana:7.3.3[root@k8s-dns ]# doc ...
kubernetes安装Prometheus监控集群状态
Prometheus介绍Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统,自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区,为强调开源及独立维护,Prometheus于2016年加入CNCF,成为继kubernetes之后的第二个托管项目。官方网站 Prometheus特点 多维数据模型: 由度量名称和键值对标识的时间序列数据 内置时间序列数据库:TSDB promQL: 一种灵活的查询语言,可以利用多维数据完成复杂查询 基于HTTP的pull(拉取)方式采集时间序列数据(exporter) 同时支持PushGateway组件收集数据 通过服务发现或静态配置发现目标 多种图形模式及仪表盘支持 支持做为数据源接入Grafana Prometheus架构 Exporters(可以自定义开发) http接口 定义监控项和监控项的标签(维度) 按一定的数据结构组织监控数据 以时间序列被收集 Prometheus Server Retrieve(数据收集器) TSDB(时间序列数据库) Configure (static_config、 k ...
kubernetes集群之微服务tomcat服务
制作tomcat容器的底包镜像Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 123wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.70/bin/apache-tomcat-8.5.70.tar.gzmkdir /data/dockerfile/tomcattar xf apache-tomcat-8.5.69.tar.gz -C /data/dockerfile/tomcat/ 配置日志1234567891011121314151617 ...
云计算运维kubernetes集群里集成Apollo配置中心
Apollo介绍Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 Apollo安装部署Apollo官方地址 官方release包 基础架构 简化模型 交付apollo-configservice准备软件包在k8s-dns.boysec.cn上: 下载官方release包 12cd /tools/mkdir /data/dockerfile/apollo-configservice && unzip -o apollo-configservice-1.7.1-github.zip -d /data/dockerfile/apollo-configservice 执行数据库脚本注意:MySQL版本应为5.6或以上! 更新yum源 123456vi /etc/yum.repos.d/MariaDB.repo[mariadb]name = MariaDBbaseurl = https://mirrors.ustc.edu.cn/ ...