Ansible:playbook详解
版本更新:
系统版本:CentOS Linux release 7.8.2003 (Core)
ansible版本:2.9.10
playbook是由一个或者多个play组成的列表。
主要功能是将预定义的一组主机装扮成事先通过ansible中的task定义好的角色。task实际是调用ansible的一个模块,将多个play组织在一个playbook中,即可以让它们联合起来,将事先编排的机制执行预定义的动作。
playbook文件是使用YAML语言编写的。
YAML语言
官网:https://yaml.org/
YAML(Yet another Markup Language,仍是一种标记语言)是一个可读性高的用来表达资料序列的格式。
目前很多软件采用了此格式,如ansible、docker、k8s等。
语法说明
YAML 的配置文件后缀为.yml
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
#表示注释,从这个字符一直到行尾,都会被解析器忽略
数据结构YAML 支持的数据结构有三种。
对象:键值对的集 ...
Ansible:role详解
版本更新:
系统版本:CentOS Linux release 7.8.2003 (Core)
ansible版本:2.9.10
role
参考:https://galaxy.ansible.com/home
角色是ansible自1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。
简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷地include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。
目录结构roles/project/ :项目名称,有以下子目录
files/ :存放由copy或script模块等调用的文件
templates/:template模块查找所需要模板文件的目录
tasks/:定义task、role的基本元素,至少应该包含一个名为main.yml的文件; ...
Ansible:常用模块
版本更新:
系统版本:CentOS Linux release 7.8.2003 (Core)
ansible版本:2.9.10
Ansible模块目前有3000多个,但实际经常使用的大概只有二三十个。
command模块功能:在远程主机执行命令。
ansible默认模块是command,通常-m command可以省略。可修改/etc/ansible/ansible.cfg文件改成其他模块为默认模块。
1module_name = command
例如:
1ansible web_server -m command -a 'systemctl restart nginx'
Tips:此模块不支持<、>、|、;、;、&等,也不支持变量,推荐使用shell模块,命令有局限性,一些命令不一定能执行成功。
shell模块功能:和command相似,使用shell执行。
例如:
1ansible web_server -m shell -a 'cat /var/log/nginx/access.log|wc -l'
...
《如何有效阅读一本书》读书笔记
[日] 奥野宣之 / 张晶晶 / 江西人民出版社 / 2016-6
笔记
认真地和每一本书交流。
当你为别人讲解书中的内容时,才会真正理解它。当你以思想输出为前提去读书时,思想输入的质量也有所提升。
为了发现一本只属于自己的好书,在首次阅读一本书的时候,注意不只要享受其中的内容,还要为了重读而认真地做好笔记。
深刻吸收书的内容,磨练出更好的原创思考。
读名著的诀窍只有一个:等这本书变得有趣的那一天再去读。
通过笔记来选书,通过笔记来记录读书体验,用笔记做参考,通过笔记来回顾反思。这样整个读书过程都在促进自己对书的理解,从而构成个人独到的见解。
读书的目的是用自己的方式学习,而不是模仿评论家的做法,学习、吸收对自己真正有用的智慧和语句才是重要的。
人的记忆力是有限的,回想不起具体内日用也情有可原。但是你读书时有没有留下些随笔或者笔记呢?除了读书,做其他事的时候你有这样的习惯吗?
总结读书其实就是一项提炼重要内容的过程。写读书笔记可以锻炼对文章结构的组织能力,提高思想输出的质量,写作技巧会得到大幅提升。
《精进:如何成为一个很厉害的人》读书笔记
采铜 / 江苏凤凰文艺出版社 / 2016-4-1
笔记
郑重是这样一种态度:不敷衍、不迟疑、不摇摆,认真地聚焦于当下的事情,自觉而专注地投入。
当一件事,你不知道怎么做的时候,就直接开始做吧。只要开始了第一步,就会有第二步、第三步。
乐于接受反面意见,有勇气否定并重新构造自己的产品。
多线程工作,首先需要一段专注不受干扰的时间,完成工作中最核心部分的思考。
从理论出发不一定能指导实践,只有在实践中通过反思积累的知识才能指导实践。
成功是一个让人爱恨交织的字眼,无数人为了所谓的成功变成了他们原本讨厌的人,而我更相信,只有坚持做一个你所喜欢的自己,你オ可能实现真正意义上的成功。
在“心流”发生时,人心无旁鹜、全神贯注,甚至忘记了自己的存在,忘记了时间的流逝,在这个过程中,人会获得很大的满足感。
意外结果也许井非本身有务特别,而是在于它落在我们原有的认知之外。因此关注意外事件就是打开我们认知局限性的方法。
味冲谦自收,容易变成晦黯枯。终身狂放不羁,又往往流于轻薄可笑。 冲谦而狂放的人不多。 谦狂交作地过一生是修堂皇的。 “忘我”之说,说而不通。应是:论事毋涉私心意气 ...
《菊与刀》读书笔记
[美] 鲁思·本尼迪克特 / 何晴 / 浙江文艺出版社 / 2016-7
笔记
在一个民族基于其整个经验和价值体系,在思想上已形成一套与我们的设想异常不同的行动方针时,我们却侈谈共同的目标。我们根本不找机会去了解什么是他们的习惯和价值。如果去了解,我们也许会发现,某一行动方针并非必然是坏的,因为它并不是我们所了解的那一种。
“世界大同”的鼓吹者们坚信并且向全世界各地人们灌输这种信念:即“东方”和“西方”,黑人和白人,基督教徒和伊斯兰教徒,这些差异都是表面现象,实际上,凡是人,想法都是相似的。这种观点有时被称作“四海之内皆兄弟”。 人们只有自己具有坚定不移的信仰,才会有不寻常的宽容。
在中国,甚至现在,一个人仍然必须对其大宗族尽忠。这个大宗族可能有成千上万个成员,宗族对全体成员拥有裁决权,并受到这些成员的支持。当然,中国幅员辽阔,各地情况不同,但在大部分地区,一个村庄的居民大抵同属一个宗族。中国人口有四亿五千万之多,但只有100多个姓氏。同一姓氏的人,多少都承认彼此是同宗。某一地区的居民,可能全部同属一个宗族。而且,远离家乡、住在城市里的家庭也可能与他们 ...
Jenkins:pipeline简单使用
概述
参考:https://www.jenkins.io/zh/doc/book/pipeline/
部署流水线(Deployment pipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。通常会把部署流水线简称为pipeline。
Jenkins 1.x只能通过界面手动操作来描述部署流水线。Jenkins 2.x终于支持pipeline ascode了,可以通过代码来描述部署流水线。
使用“代码”而不是UI的意义在于:
更好地版本化:将pipeline提交到软件版本库中进行版本控制。
更好地协作:pipeline的每次修改对所有人都是可见的。除此之外,还可以对pipeline进行代码审查。
更好的重用性:手动操作没法重用,但是代码可以重用。
体验新建一个pipeline:
保持构建数为3
Pipeline script:
1234567891011pipeline { agent any stages { stage('Hello') { steps ...
Zookeeper:快速部署
本文主要介绍ZooKeeper的快速部署安装,更多信息请参考ZooKeeper
概述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。它的设计易于编程,它使用一个遵循文件系统中常见的目录树结构的数据模型。它在Java环境中运行,对Java和C都有绑定。
ZooKeeper有三种安装模式:单机安装(standalone)、伪集群模式、集群模式:
standalone模式:只在一台机器上安装ZooKeeper,并只启动一个ZooKeeper实例。
伪集群模式:在一台机器上开启多个ZooKeeper实例来模拟集群。通过加载不同配置文件,分配不同数据目录来实现这种模式。因为在同一机器上运行,所以机器宕机,整个ZooKeeper就挂了。基本上不会布置这样的ZooKeeper集群。
集群模式:在至少3台机器上安装ZooKeeper构成集群,只要故障节点数量在一定范围内就能保证ZooKeeper服 ...
Docker基础:命令总结
常用命令归纳123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657container 管理容器image 管理镜像network 管理网络node 管理Swarm节点plugin 管理插件secret 管理Docker secretsservice 管理服务stack 管理Docker stacksswarm 管理Swarm集群system 查看系统信息volume 管理卷images 查看镜像列表rmi 删除镜像save 将指定镜像保存成 tar 归档文件load 从存档或者STDIN加载镜像build 从一个DockerFile构建镜像commit 从容器创建一个镜像create ...
Docker基础:概述
概述什么是容器容器技术由来已久,却直到几十年后因dotCloud公司(后更名为Docker)于Docker项目中发明的“容器镜像”技术创造性地解决了应用打包的难题才焕发出新的生命力并以“应用容器”的面目风靡于世,Docker的名字更是响彻寰宇,它催生出或改变了一大批诸如容器编排、服务网格和云原生等技术,深刻影响了云计算领域的技术方向。
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
容器的优势对于开发人员: Build Once、Run Anywhere。
容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的Host环境是隔离的,就像虚拟机一样,但更快更简单。
对于运维人员: Configure Once、Run Anything。
只需要配置好标准的runtime环境,服务器就可以运行任何容器。这使得运维人员的工作变得更高效、一致和可重复。
Tips:runtime简单来讲,就是让容器跑起来的组件。
容器消除了开发、测试、生产环境的不一致性。
Docker使用G ...