ansible

用python将ansible配置转为json格式

为君一笑 提交于 2020-05-08 00:15:58
ansible的配置文件举例如下,这种配置文件不利于在前端的展现,因此,我们用一段简单的代码将ansible的配置文件转为json格式的: [webserver] 192.168.204.70 192.168.204.71 [dbserver] 192.168.204.72 192.168.204.73 192.168.204.75 [proxy] 192.168.204.76 192.168.204.77 192.168.204.78 [test] 192.168.204.79 192.168.204.80 [haproxy] 192.168.205.82 192.168.204.83 用python将ansible配置转为json格式,python代码如下: import ConfigParser import json dict_result = {} cf = ConfigParser.ConfigParser(allow_no_value=True) cf.read('/etc/ansible/hosts.test') secs = cf.sections() for sec in secs: dict_result[sec] = cf.options(sec) print json.dumps(dict_result) 转换结果如下(python版本使用2.7版本的):

站点上线联动ELK日志录入

余生长醉 提交于 2020-05-06 10:23:35
ELK架构日志处理逻辑: 1、业务层Filebeat安装时会自动获取主机运行站点域名及环境信息新增channel及env标签,并将channel的值作为kafka的topic信息 2、Kafka收到Filebeat的新增字段及Topic信息,自动创建Topic信息,以等待logstash消费 3、Logstash根据脚本自动生成input及output配置 这里的topic一定和filebeat的channel一致。 示范: filebeat层: - type: log processors: - add_fields: fields: env: "prod" ## ansible调用Python根据网段信息自动判断生成 ip: "10.12.11.27" ## ansible调用Python根据网段信息自动判断生成 apptype: "service" ## ansible调用Python根据域名自动判断生成 channel: "cms.prod.tarscorp.com" ##ansible调用Python根据站点目录生成 enabled: true paths: - /data1/logs/cms.prod.tarscorp.com/*.log output.kafka: codec.json: pretty: true escape_html: false hosts: [

002.RHCS-配置Ceph存储集群

北城余情 提交于 2020-05-06 01:49:27
一 前期准备 1 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 2 [ceph@serverc ~]$ ceph health #确保集群状态正常 3 HEALTH_OK 提示:相关部署参考《 001.Ansible部署RHCS存储集群 》。 二 存储池概述 2.1 存储池 Red Hat Ceph存储池池是Red Hat Ceph存储集群用于存储对象的逻辑分区。 池有特定的属性:池类型,它确定池用于确保数据持久性的保护机制。 replication类型在集群中分布每个对象的多个副本。 erasure coding类型将每个对象分割成块,并将它们与其他擦除编码块一起分发,以使用自动纠错机制保护对象。 池中存在一定的数量的PG,它们将它们的对象存储在一组由CRUSH算法确定的osd中。 Ceph使用CRUSH规则集来标识哪个放置组应该包含它存储的每个对象。 访问级别用于确定不同用户的访问权限的访问权限。 当Ceph在池中存储对象时,它使用CRUSH算法将对象分配给池中的一个PG。根据池的配置和CRUSH算法,PG自动映射到一组OSDs。这决定了Ceph用来存储对象的OSDs。池类型决定该对象如何在该集合的OSDS中复制或存储。 存储管理员可以配置CRUSH,以便Ceph存储使用特定类型存储设备(如ssd

Bash 的4种运行模式

回眸只為那壹抹淺笑 提交于 2020-05-04 22:38:45
1.在日常使用bash的过程中,老是会遇见通过ssh 连接到服务器产生环境变量不可用。命令不存在,是不是让人有点懊恼。 2.还有就是在登录Armbian的时候会有串数据提示,但是在切换用户后并没有这种提示。是如何做到的呢? 上面的问题都是由bash的运行模式的不同带来的现象。 4种模是由2种状态的交叉组合而成。interactive和non-interactive, login shell和non-shell interactiv的意思是当前的shell是交互式, 输入命令。窗口(标准输出)返回结果 login shell就是用户登录到机器获得的shell 检测是否是交互式: $- == i # 如果返回结果中包含'i',则是交互式 检测是否登录:shopt -q login_shell # 如果为真则为登录 查看加载的配置文件顺序可以通过输出当前文件名来排查。 1.interactive + login shell (即交互式登录 进入该模式的操作: 1.常规账号密码登录 2.ssh xxx@123.123.123.123 加载的配置文件及顺序: /etc/profile /root/.bash_profile # bashrc是在bash_profile里加进去的 /root/.bashrc /etc/bashrc 2.non-interactive + login shell

Gitlab_ansible_jenkins三剑客⑥Jenkins和ansible集成

我怕爱的太早我们不能终老 提交于 2020-05-04 08:48:10
ip 角色 备注 10.11.0.215 jenkins服务器 通过deploy运行jenkins服务,deploy用户做了免秘钥登录ansible服务器 10.11.0.210 ansible服务器 通过deploy执行ansible服务,做了免秘钥登录test主机 10.11.0.212 需要被ansible控制的主机 环境准备: 搭建ansible服务环境,参考前面章节 Ansible和10.11.0.212做免密码登录 Jenkins和ansible服务做免秘钥登录 整理的逻辑: Jenkins –> 远程调用ansible上的testansible.sh脚本 -->test.example终端机 Jenkins的配置,执行脚本 # 通过jenkins服务器调用ansible(10.11.0.210)上的脚本执行ansible任务 #!/bin/sh source /etc/profile ssh deploy@10.11.0.210 "/usr/sbin/ip a" ssh deploy@10.11.0.210 "ls" ssh deploy@10.11.0.210 "/bin/sh testansible.sh" Testansible.sh 脚本 [deploy@node1 ~]$ cat testansible.sh #!/bin/sh set +x source

centos7搭建ntp时间同步服务器chrony服务

十年热恋 提交于 2020-05-02 18:58:16
centos7搭建ntp时间同步服务器chrony服务 前言: 在centos6的时候我们基本使用的是ntp服务用来做时间同步,但是在centos7后推荐是chrony作为时间同步器的服务端使用,避免的ntp在centos7支持的不是很友好 。 什么是chrony? 第一部分的第3条说明对比关系,详见centos6和centos7的对比,连接地址:https://www.cnblogs.com/liych/p/11741632.html 在centos7上可以用它做时间服务器使用,是默认支持的,也是更新后centos7默认的时间服务器,另外还有就是,它作为网络时间协议的客户机/服务器,此程序保持计算机时钟的准确性。它是专门为支持断断续续的互联网连接而设计的,但它在永久连接的环境中也能很好地工作。它还可以使用硬件参考时钟、系统实时时钟或手动输入作为时间参考。至此,推荐使用。 chrony有2个命令,详见如下: chronyd: 是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。 chronyc: 提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。 开始部署chrony环境 1.环境说明 实现目的:需要两台或集群内的多台设备时间同步一致。

Centos7 安装Docker

倾然丶 夕夏残阳落幕 提交于 2020-05-02 16:53:02
一、前言   (一)、Docker介绍     Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。     社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。     社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。   (二)、预处理   1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本机CentOS 版本是否支持 Docker 。 uname -r   2、使用管理员权限登录Centos(root),确保yum包更新到最新。(线上环境不建议更新,以防引发其他版本问题) yum update   3、卸载其他旧版本(如果有安装过,请注意执行。) yum remove docker docker-common docker-selinux docker-engine   备用方法(旧版本卸载) yum remove docker docker-common docker-selinux docker-engine -y /etc/systemd -name '*docker*' -exec rm -f {} ; find /etc

电商测试环境Jenkins multibranch pipeline实践

北战南征 提交于 2020-05-02 14:27:30
一、背景情况 整个项目组有32个java应用,10个javascript应用以及若干其他应用,并且还有增加的趋势; 3套测试环境,测试发布非常频繁,并且有同一个应用不同分支并行测试的情况; 版本管理器gitlab在公司内网局域网,测试环境在公网的青云主机上; Java应用在测试环境,可能有单节点或多节点部署; Java应用非常多,内存吃紧,需要合理部署应用在主机上,并且增加限制内存使用的启动参数; Java应用有多种部署及启动方式,有tomcat部署的,有一个整的jar包方式部署的,有jar包与配置文件分离并且主要配置都在配置管理中心的部署方式; 代码管理分支策略方式为,从master分支切出功能开发分支,并且其他分支提交到master分支的变更及时合并到此开发分支用以消除代码冲突,此分支发布生产环境之后,合并到master分支; 配置文件繁多,不同的环境配置文件不同; 二、multibranch pipeline介绍及实现构想 1、简单介绍: A、先介绍下什么是Jenkins 2.0,Jenkins 2.0的精髓是 Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色。什么是Pipeline,简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程

Linux命令集锦:ansible命令

允我心安 提交于 2020-05-02 10:31:43
ansible 命令主要用于批量管理,来实现自动化管理。常用批量操作包括:主机分组管理、实时批量执行命令或脚本、实时批量分发文件或目录、定时同步文件等。 一、安装 ansible yum install ansible 安装完成后 /etc/ansible/ 目录下有个 hosts 文件,对主机实现批量管理主要是通过配置 hosts 文件。 二、ansible 命令参数介绍 基本使用: ansible命令格式:ansible <host-pattern> [options] 常用 options 参数: -m, NAME, --module-name=NAME: 指定执行使用的模块。 -a, 'ARGUMENTS', --args='ARGUMENTS': 模块参数。 -k, --ask-pass SSH: 认证密码。 常用 -m (module) 参数: shell、copy、script、file、yum、user、service <host-pattern> 主机列表配置: 编辑 /etc/ansible/hosts 文件,添加要批量执行的主机,可以指定分组。 [GROUP1] #组名 10.111 . 17.119 : 22 # 主机:端口,不指定端口则默认 ssh 端口为22 10.111 . 17.120 : 22 [GROUP2] 10.111 . 18.119 :

Linux三阶段之六:ansible批量管理服务介绍

假如想象 提交于 2020-05-02 09:43:54
六、ansible批量管理服务介绍 (一)批量管理服务知识介绍 a. ansible是一个基于Python开发的自动化运维工具 b. ansible是一个基于ssh协议实现远程管理的工具 c. ansible软件可以实现多种批量管理操作(批量系统配置、批量软件部署、批量文件拷贝、批量运行命令) saltstack puppet (二)批量管理服务特征介绍 a ansible软件服务端(管理端):不需要启动任何服务 默认服务端不需要任何的配置 b ansible软件客户端(受控端):没有客户端软件安装 (三)ansible软件安装部署 1 .ansible软件自动化环境架构规划 管理主机1台: 10.0.0.61 m01 受控主机3台: 10.0.0.41 backup 10.0.0.31 nfs01 10.0.0.7 web01 Linux系统 6.9 2 ansible软件自动化部署条件 a .ssh密钥对创建(管理主机,建议基于ssh密钥方式建立远程连接) ssh-keygen -t dsa 影响免交互创建密钥对创建因素: 1)需要指定私钥存放路径 -f /root/.ssh/id_dsa 2)需要进行私钥文件密码设定 -N/-P -N ""/-P "" 免交互创建密钥对方法 ssh-keygen -t dsa -f /root/.ssh/id_dsa -N "" b