YAML

使用 Ansible 的第一天

两盒软妹~` 提交于 2021-02-04 09:38:31
一名系统管理员分享了如何使用 Ansible 在网络中配置计算机并把其带入实际工作的信息和建议。 无论是第一次还是第五十次,启动并运行一台新的物理或虚拟计算机都非常耗时,而且需要大量的工作。多年来,我一直使用我创建的一系列脚本和 RPM 来安装所需的软件包,并为我喜欢的工具配置各种选项。这种方法效果很好,简化了我的工作,而且还减少了在键盘上输入命令的时间。 我一直在寻找更好的工作方式。近几年来,我一直在听到并且读到有关 Ansible 的信息,它是一个自动配置和管理系统的强大工具。Ansible 允许系统管理员在一个或多个剧本playbook中为每个主机指定一个特定状态,然后执行各种必要的任务,使主机进入该状态。这包括安装或删除各种资源,例如 RPM 或 Apt 软件包、配置文件和其它文件、用户、组等等。 因为一些琐事,我推迟了很长一段时间学习如何使用它。直到最近,我遇到了一个我认为 Ansible 可以轻松解决的问题。 这篇文章并不会完整地告诉你如何入门 Ansible,相反,它只是对我遇到的问题和我在一些隐秘的地方发现的信息的做了一些记录。我在各种在线讨论和问答小组中找到的有关 Ansible 的许多信息都是错误的。错误范围包括明显的老旧信息(没有任何日期或来源的迹象),还有一些是完全错误的信息。 本文所介绍的内容是有用的,尽管可能还有其它方法可以完成相同的事情,但我使用的是

一文读懂云上DevOps能力体系

陌路散爱 提交于 2021-02-04 01:14:18
序言 云计算行业已经有十多年的发展了,话题早已从“要不要上云”转向“如何用好云”。“要不要”其实是一个决策性的话题,直到决策出来一个结果了,话题就算结束了。而“如何用好云”却是一个持续性的话题。 一般来说,在规划阶段开始,企业就会开始思考“如何用好云”,这个话题会伴随用云的整个过程。如果简单地从工作类型划分,除了业务代码的研发(Dev),其他的部分都可以称为运维(Ops),包含资源创建(环境部署)、应用部署、资源管理、资源监控、报警、故障排查等工作。 笔者从事云计算工作超过五年时间,参与开发过多款云产品,可以说既是云计算产品的消费者,也是云计算产品的生产者。在这里,笔者谈一谈对云上DevOps能力体系的多年思考和总结,希望对准备上云或是已经上云的运维人员有所帮助。 1 自动化运维等级金字塔 从运维自动化等级和程度来看,DevOps其实是一种非常高级的自动化,不仅自动化程度比较高,而且对于自动化的完成方式有着非常严格的定义。关于运维自动化与DevOps的关系,其实可以非常好地参考汽车自动驾驶技术分级标准,笔者做了个对比图,如图1。 图1:自动化运维等级金字塔 如图1,自动化运维可分为5个等级, 分别是手动运维、半手工/半自动化运维、高度自动化、标准化运维和AIOp s,分别对应自动化驾驶的6个Level,其中运维自动化L2对应了自动驾驶的Level 1和2

Python主讲移动端自动化测试框架Appium 从基础到项目实战

北城余情 提交于 2021-02-03 13:10:43
download: Python主讲移动端自动化测试框架Appium 从基础到项目实战 说到APP自动化测试,Appium可是说是非常流行了, 不仅支持多语言、多平台的优势,同时支持Andriod、iOS、H5的自动化测试;本课程会从初级的Appium框架讲起,涉及业界常见的po模型、关键字模型、服务自动化、持续集成等实战讲解,让你快速上手移动端自动化测试工作,高薪工作手到擒来! 适合人群及技术储备要求 本门课程是为初、中级测试工程师准备的,更是入门移动端自动化测试工程师的首选课程,毫不夸张的说 学习完本课程内容,以及《Web自动化测试 Selenium基础到企业应用》、《Python接口测试框架实战与 自动化进阶》实战课程后,具备3年左右工作经验的你,完全可以轻松 PK 百度T4 测试工程师! 技术储备要求: 了解Selenium、Webdriver基础知识 有一定的Python语法基础 熟悉APP功能测试 课程目录:第1章 appium环境到根底函数的封装 经过环境搭建得思绪剖析将环境搭建起来,经过Appium的原理刨析整个运转进程,以慕课网启动到登陆的实践例子爲切入点,深化解说appium的id、className、层级定位、list定位、UIAutomator定位、xpath定位、H5定位等根底知识和罕见api运用,函数封装等。... 1-1 课程目的及课程规划-导学 试看

美的空调接入HomeKit 【引用】

烂漫一生 提交于 2021-02-03 11:02:58
使用树莓派开启HomeKit智能家居系统 2021-01-24 15:40:46 10点赞 63收藏 6评论 前段时间时间逛论坛https://bbs.hassbian.com/发现有中国大神(mac-zhou)写了一个适用于国行美的空调的HA插件,适用于部分美的Wi-Fi空调,能接入美居APP的那种,下载下来试了一下确实没问题,在这里分享给大家。 接入设备 室内机型号:FKR-35G/WDAD3@ 开始接入 插件介绍 来自中国大神开发者mac-zhou的插件midea-ac-py,可以通过局域网协议控制美的空调,有说法是取暖器也可以,我这没做测试,大家可以试试。 判断空调能否接入 通过ssh登录树莓派后台,输入以下命令安装msmart插件: sudo pip3 install msmart -i http://mirrors.aliyun.com/pypi/simple/ pip安装辅助插件 安装完成后输入: midea-discover 发现空调 如果显示supported则说明支持,记下返回的id、ip,后面用得到,如果有多个设备请通过路由器中的ip来一一对应。 安装插件 访问插件的GitHub仓库,下载并安装,方法参考之前的文章,把插件文件夹拖到custom_components中。https://github.com/mac-zhou/midea-ac-py 启动 插件

K8S入门知识概念

天大地大妈咪最大 提交于 2021-02-03 06:40:34
1.查看节点的日志信息: journalctl -u kubelet -n 1000 2.查看对应deployment的pod数量,并对其进行设置: kubectl get deployments & kubectl scale deployment nginx-deployment --replicas 3.node节点加入k8s集群: kubeadm join --token 1f627e.a37793601a406d7e 10.0.1.22:6443 --discovery-token-ca-cert-hash sha256:e12a8e1d1be7d308dad31bebdb2684d9d4ba7e5ae290f4fd1f855089b1abe71a 4.K8S给node设置污点策略: kubectl taint nodes node1 key=value:NoSchedule -- 新的不能容忍的 pod不能再调度过来,但是老的运行在node上不受影响 kubectl taint nodes node1 key=value:NoExecute -- 新的不能容忍的 pod不能调度过来,老的pod也会被驱逐 kubectl taint nodes node1 key=value:PreferNoSchedule --pod会尝试将pod分配到该节点 5

SaltStack--接口salt-api

早过忘川 提交于 2021-02-02 15:44:35
SaltStack接口salt-api 介绍 参考官档 参考官档 SaltStack 官方提供有 REST API 格式的 salt-api 项目,将使 salt 与第三方系统集成变得更加简单。 salt-api安装配置 1)在 salt-master 上进行安装 [root@salt-master ~]# yum -y install salt-api 2)自签名证书,生产环境可以购买(说明:如果没有 salt-call 命令,装上 salt-minion 即可,依赖于该包) [root@salt-master ~]# salt-call -- local tls.create_self_signed_cert local: Created Private Key: " /etc/pki/tls/certs/localhost.key. " Created Certificate: " /etc/pki/tls/certs/localhost.crt. " 3)打开 include 加载子配置文件,方便管理 [root@salt-master ~]# vim /etc/salt/ master default_include: master.d /* .conf 4)配置 api 配置文件,将上面生成的证书写到配置文件 [root@salt-master ~]# vim /etc

saltstack的salt-api介绍

泪湿孤枕 提交于 2021-02-02 15:30:34
一、salt-api安装 yum install salt-api pyOpenSSL -y #pyOpenSSL 生成自签证书时使用 二、生成自签名证书(ssl使用) [root@master certs]# salt- call tls.create_self_signed_cert local: Created Private Key: " /etc/pki/tls/certs/localhost.key. " Created Certificate: " /etc/pki/tls/certs/localhost.crt. " [root@master certs]# ls localhost.crt localhost.key 三、创建基于pam认证的系统用户 [root@master certs]# useradd -M -s /sbin/nologin salt-api [root@master certs]# echo "salt-api" | passwd salt-api -- stdin Changing password for user salt- api. passwd : all authentication tokens updated successfully. [root@master certs]# 四、在master节点新增配置文件 [root

python UI自动化测试

筅森魡賤 提交于 2021-02-02 05:59:23
为了减小维护成本:   1.UI自动化测试需要有较为稳定的环境   2.代码设计合理,那么我们就需要面向对象的设计一个框架,将重复的代码模块化 一、首先总结一下 UI自动化大概要哪些模块   1.config(配置文件):用来存放配置文件(YML,XML,HTML。。。)   2.data(数据文件):存放测试数据等   3.drivers(驱动):Chromedriver,IEdriver   4.log(日志文件):打印测试log   5.report(报告):生成HTML测试报告   6.test(测试用例):写TestCase调用其他模块中的方法   7.utils(公共方法):写调用config、data、log、report等其他模块的方法   8.后续可自己增加其他模块,比如针对某类型元素的获取,page中元素的定位等 二、结合起来运用   首先如果我们没有框架的话, 写一个testcase可以直接写到一个class中,甚至不用class,甚至连def都可以不用就实现了一个case; 但是,万一下次又用到了同样的功能,需要写同样的内容怎么办呢???甚至它和之前的case只有一点点不一样的话呢???我们需要不断的复制粘贴并且修改; 那么我们这里需要用到class来实现不同模块之间的调用   1、我们需要在utils方法中写入一些基本方法,实现对其他模块的调用   1)

Kubernetes的ConfigMap对象使用

会有一股神秘感。 提交于 2021-02-02 01:42:58
ConfigMap和Secret几乎一样,只是Secret会用base64加密,创建方式也可以彩yaml或者文件方式 下面演示一下通过文件创建configmap 创建配置文件my.yaml name: chenqionghe light.weight: baby gym: muscle 通过文件创建ConfigMap kubectl create configmap my-config --from-file=./my.yaml 查看configmap对象 root@VM-0-8-ubuntu:/home/ubuntu# kubectl get configmaps my-config -o yaml apiVersion: v1 data: my.yaml: | name: chenqionghe light.weight: baby gym: muscle kind: ConfigMap metadata: creationTimestamp: 2019-09-27T16:43:53Z name: my-config namespace: default resourceVersion: "2139336" selfLink: /api/v1/namespaces/default/configmaps/my-config uid: fd4aeb09-e145-11e9-8c22

详解 Kubernetes Pod 的实现原理

落花浮王杯 提交于 2021-02-01 11:35:27
Pod、Service、Volume 和 Namespace 是 Kubernetes 集群中四大基本对象,它们能够表示系统中部署的应用、工作负载、网络和磁盘资源,共同定义了集群的状态。Kubernetes 中很多其他的资源其实只对这些基本的对象进行了组合。 Pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元,想要彻底和完整的了解 Kubernetes 的实现原理,我们必须要清楚 Pod 的实现原理以及最佳实践。 在这里,我们将分两个部分对 Pod 进行解析,第一部分主要会从概念入手介绍 Pod 中必须了解的特性,而第二部分会介绍 Pod 从创建到删除的整个生命周期内的重要事件在源码层面是如何实现的。 概述 作为 Kubernetes 集群中的基本单元,Pod 就是最小并且最简单的 Kubernetes 对象,这个简单的对象其实就能够独立启动一个后端进程并在集群的内部为调用方提供服务。在上一篇文章 从 Kubernetes 中的对象谈起 中,我们曾经介绍过简单的 Kubernetes Pod 是如何使用 YAML 进行描述的: apiVersion : v1 kind : Pod metadata : name : busybox labels : app : busybox spec : containers : - image : busybox