陈沙克

Sep 252018
 

在OpenShift,整整忙乎了一年,逐步一点一点完善整个CI 的工具链。根据我自己的理解和实践,我整理一下。

这些工具链,除了要感谢同事努力,帮忙验证这些工具是可用的,同时还需要感谢客户,正是因为这位客户的交流,给我们提了很多需求和想法,经过他的折磨,才有今天的这套相对比较完整的工具链。这也是我后续持续半年的投入来完善动力。

涉及的相关的技术,其实我同事已经分享到简书上,大家可以参考。

https://www.jianshu.com/u/15a6a6df3202

我是按照jenkins的运行的流程来介绍工具

  1. 在Jenkins创建一个Maven的job
  2. Gitlab的webhook,触发Jenkins里的job,jenkins的slave镜像启动,Maven已经集成到jenkins的slave镜像里。
  3. 从Gitlab拉取代码
  4. Jenkins调用SonarQube静态扫描代码
  5. Maven利用Nexus build jar包
  6. Maven利用Junit和TestNG自动化测试
  7. Jenkins Slave镜像完成相关工作,会把结果传到Jenkins的Master节点上,然后把slave节点销毁掉。
  8. 触发Openshift build 镜像,deploy环境
  9. UI自动化测试

对于ci的流程,不少工具会产生大量的数据,所以尽可能使用S3,对象存储来存储数据,这样可以避免磁盘撑破。流程里的工具,都采用OpenLdap来统一身份验证,授权在应用里进行。

下面的工具,全部容器化,跑在OpenShift上。整个环境的部署,从OpenShift安装,一直到工具链对接,跑完一个Java的demo测试,1天就可以完成,应该还是非常高效。

身份统一认证

LDAP

其实打造一套工具链,面临了一个很现实的问题,如何统一不同工具的身份验证的问题。那么通过OpenLdap,基本是唯一办法,这是代价最小的方式,现在目前基本所有的应用,都支持ldap认证。

所以我们也花精力把OpenLdap跑起来,用来提供用户验证,当我设置允许该用户登录某个系统,用户用统一的用户名和密码,登录到不同的系统中。

第一个需要解决的系统,其实就是OpenShift平台的用户管理。用户在openldap上创建,用户的权限管理,在openshift设置。

OpenLdap在OpenShift平台部署,比较简单。

https://github.com/openshift/openldap

OpenShift上部署生产的OpenLdap,需要考虑不少东西,主从架构,估计还需要搞一个Operator,不过应该够用。

目前OpenLdap的用户管理,缺乏UI,这块我们自己开发一套OpenLdap管理的UI,当然也肯定是跑在OpenShift上。

项目管理

jira-vs-confluence

软件的项目管理,需求管理,这是在比较大的项目里的一个需求,另外还有项目的文档管理。

软件的开发,我们希望可以支持敏捷开发,实现看板的功能。还有就是issue的管理。关于issue,详细的介绍,大家可以http://www.ruanyifeng.com/blog/2017/08/issue.html   阮一峰介绍的很详细。

  1. Redmine
  2. Jira+confluence
  3. 禅道

上面三个软件,都能支持ldap的用户管理,我基本都折腾了一遍。最好的肯定是Jira+confluence。很多创业公司一成立,就直接把jira+confluence搭建起来,宁愿付费,也要使用,提高效率。

Jira和confluence官方提供docker镜像,你可以拿来修改一下就可以跑在OpenShift上。这个过程,基本就是体力活。当jira和confluence用起来后,存储需求比较大,其实应该考虑把数据放到S3上,减轻PaaS平台的存储压力。

禅道,基本是能满足我们使用需求。缺点就是一个孤岛,没法和外面的系统集成。

Redmine,老牌的开源项目管理软件,可以通过装上各种插件满足项目的需求。可以和gitlab对接。唯独社区不是很活跃,用ruby语言开发,感觉非常不可控。

对于Jira来说,其实可以作为一个公司的门户入口。如果你舍得投入的话,要有的功能都有。可以对接jenkins,Sonarqube。把各个软件的运行的信息,显示在jira的页面上。

持续集成工具

Jenkins-large

红帽的OpenShift上已经直接集成了Jenkins,而且用户是和OpenShift统一。可以启用jenkins的k8s插件,这样可以把jenkins的slave跑起来。当job在slave跑完后,会把相应的结果复制到master上,就会销毁掉。

jenkins的插件非常多,常用的gitlab对接,gitlab触发jenkins,jenkins和jira对接,jenkins的深入,其实就看你使用的插件的数量。

整个持续集成的重点,就在于Jenkins,jenkins是挺复杂,你需要投入时间了解他,不过好处就在于,好像基本没碰到什么bug。插件都能正常工作。

关于Jenkins启用k8s插件后,slave节点的配置

https://medium.com/muhammet-arslan/how-ive-created-scaled-and-distributed-jenkins-top-of-kubernetes-441db62b15cd

如果要提高jenkins的并发能力,用好slave,大家真的要好好看看。

使用的时候,有一个地方需要注意

https://github.com/jenkinsci/kubernetes-plugin

搜索 Over provisioning flags 。

这个地方也是需要注意,设置一下。

jenkins

项目构建工具

maven

对于java的开发人员来说,项目的构建工具:ANT,Maven和Gradle,ANT应该早已废弃。Gradle风头很猛,不过Maven在如今仍然是Java构建技术的事实标准。所以我们项目里,还是选择Maven作为构建工具。

大家可以简单理解,Maven,就是管理项目的依赖关系的工具。

Openshift内置的jenkins Slave镜像,默认就支持Maven。所以就非常方便。如果你希望用Gradle构建,那么还需要多做一点工作。

代码管理工具

gitlab

其实这个悬念不多,建议直接使用gitlab就可以了。现在市场上还有好几个开源的代码管理仓库,功能都基本一致,不过最大的问题,就是和别的系统集成上,缺乏插件。

gitlab,作为代码仓库,至少需要和外面的系统对接:jira对接issue,对接jenkins。

gitlab也带CI的工具,不过我没有用,这也是大家比较诟病的一个功能,太重。不过还好,无非就是多用2g内存而已。

gitlab在OpenShift的部署,官方提供文档,照做就可以。

https://about.gitlab.com/2016/06/28/get-started-with-openshift-origin-3-and-gitlab/

gitlab的issue功能,可以关闭,直接集成到jira上,这样可以实现issue集中管理。

目前还没很好解决的问题就是无法通过ssh访问gitlab,只能是https的方式。后续再深入研究。ldap集成,也是没问题。

代码质量管理

Snap6

代码扫描工具,基本目前大家都使用SonarQube。可以对没编译前的代码根据定义的规则,进行扫描,并且生成报告。

用户还能自定义规则,可以把公司的代码规范融入到规则里,一旦发现不规范的地方,马上提示。

snoarqube

Jenkins装上SonarQube插件,在流水线上,直接让SnoarQube进行代码的扫描。

另外SonarQube还能通过jira的插件,把报告显示在jira的UI上。

Openshift安装,红帽提供了一个模板:

https://github.com/OpenShiftDemos/sonarqube-openshift-docker

朋友问的最多的问题,关于如何自定义规则,参考这里基本就差不多。

https://github.com/SonarSource/sonar-custom-rules-examples

制品库

nexus

作为Maven的私有仓库,目前选择是

  • JFrog’s Artifactory
  • Sonatype’s Nexus

Nexus3.x的版本,比2.x版本功能多很多,还可以提供yum源管理。可以大大加快企业内部的build速度。

需要考虑的一个问题就是Nexus的存储,如果可能,存放到S3上。

Nexus容器化,OpenShift运行,红帽直接提供官方的支持

https://docs.openshift.com/container-platform/3.5/dev_guide/app_tutorials/maven_tutorial.html

jenkins通过Maven构建的时候,就可以直接使用私有的仓库来构建,加快构建的速度。

测试框架

junit-testng

Maven本身并不是一个测试框架,Java世界中主流的测试框架为Junit和TestNG。Maven在构建执行到特定生命周期阶段的时候,通过插件maven-surefire-plugin来执行Junit或者TestNG的测试用例,也可以并行执行测试用例。该插件能很好的兼容Junit3、Junit4,unit5和TestNG。

https://www.baeldung.com/core-maven-plugins

配置管理中心

apollo

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

对于OpenShift来说,开发,测试,生产使用相同的镜像,就需要一个配置管理中心,集中管理各个不同的环境的配置文件。

UI自动化测试

zalenium

zalenium是一个Selenium Grid扩展,可以理解为在k8s跑Selenium Grid的版本,实现在Firefox和Chrome中进行的UI自动测试。

Selenium Grid包括两种角色,类似master,slave的概念,可以实现1主多从。

  1. hub :主节点,master节点
  2. node:分支节点,slave节点

测试管理

testlink

测试用例管理,测试计划管理,目前开源的工具,基本就是Testlink。可以和jira或者Redmine集成,把issue集成到上面。不过还无法在testlink里,指派issue给开发者。

展望

其实没完成和验证的东西,我是不想放在这里。不过有朋友专门来找我聊,问我还有啥进一步的想法,他考虑根据这个去招标。我是从来不隐瞒我的想法的,我就把我的一些我未来计划要做的工作整理一下。

压力测试

jmeter1

通过testNG的插件,就可以对应用进行功能测试,压力测试。不过大家常用的压力测试工具是jmeter。在OpenShift的部署,倒是简单。红帽的美女工程师有专门的blog https://eleanordare.com/ 和githuab代码,

https://github.com/eleanordare/jmeter-openshift-jenkins

需要的是投入精力研究jmeter的使用,如何写脚本。

安全动态扫描

zap

sonarqube可以进行代码的静态扫描,就是对git仓库的代码直接扫描,发现一些基本的漏洞。安全的动态扫描,以往都是应用上线前,进行安全漏洞扫描。我们其实应该把漏洞扫描集成到我们的CI过程。

OWASP ZAP

https://github.com/rht-labs/owasp-zap-openshift

红帽已经把OpenShift集成做好了,剩下也是使用的问题。这个其实对企业还是很有价值的。另外Snoarqube也是有集成插件,可以把报告发过去。

代码Review专业工具

gerrit

习惯OpenStack的代码review,其实用起gitlab的代码review功能,还是比较别扭。不过国内其实公司代码的Review机制其实还是没建立起来。真的要用代码review,还是需要Gerrit。

Gerrit和gitlab进行整合,并且Gerrit对接Jenkins,让提交代码没merge前,就可以跑测试,这个真的要花功夫去调试,才能玩得转。

目前Gerrit在Openshift上的使用案例不多,据说红帽内部是用Gerrit来做代码review。后续需要把这个实现,工具链才能算是完整。

自动化运维工具

tower

估计很多朋友还没搞明白,为啥需要在DevOps工具链里集成红帽的Ansible Tower的管理工具。我们可以把我们日常运维的ansible roles用Tower管理起来。包括OpenShift自己的。

后续很多想法。如何做到更加自动化,其实都要依赖ansible。

当我们的项目架构评审完毕后,所有的需求,以往都是在一个wrod文档,Excel文档,通过手工的方式来把开发环境准备出来。这里面其实体力活很多,创建的数据库的密码是啥,URL是啥。有什么办法,可以把文档需求,自动化把开发环境初始化出来,并且把初始化的信息反馈回来到相应的页面里,这样大家就可以有一个统一的入口,查看相关的信息。不然运维人员项目多起来,也是会累死的,即使用了OpenShift。

OpenShift跑Tower,管理Ansible,也是红帽大力推动的一个方向。Tower的开源版本是Awx

https://github.com/ansible/awx

Openshift的安装

https://developers.redhat.com/blog/2017/10/16/guide-starting-use-awx-top-openshift-upstream-red-hat-ansible-tower/

应用性能管理

pinpoint

应用的性能监控,一般会部署到生产环境中,了解应用的性能瓶颈。不过我的理解,如果在ci的过程,我能集成,这样测试人员,对应用的性能了解更加深入。开发的过程中,就关注性能,我感觉也是很有必要的。到底那个commit代码导致性能的下降,那么我们有一个直观的工具了解到,还是非常方便的。

不过很遗憾,我搜索半天,基本没看到相关的在CI过程使用pinpoint。那么在OpenShift的部署

https://github.com/makentenza/ocp-pinpoint-apm

也是出自红帽工程师,值得信赖。

JAEGER 这也是一个热门选择工具

https://github.com/jaegertracing/jaeger-openshift

openshift很多使用案例。

应用日志管理

Snap12

红帽的OpenShift已经集成了EFK,可以通过这个来收集和查看整个平台的日志。不过由于微服务,导致应用的日志数量庞大,日志落盘后,收集,会导致很多性能的问题。

经过实践,自己开发的应用,我们都是直接让应用把日志log发送给Kafka,最后发送懂Elasearch上来查看。如果是一些比较轻的应用,例如jira,等,这些应用,你是不可能改变他的日志输出方式,那么我们就让他落盘,通过Fluntd来收集日志,通过kibana来查看。红帽的这套EFK是支持多租户,其实做的还是非常不错的。

kafka,elk这套工具,也是可以完整部署到Openshift上。

应用监控管理

普罗米修斯

OpenShift平台上,重点推荐普罗米修斯来作为监控。整个平台日后都会用普罗米修斯监控。那么针对应用的监控,我们是使用平台的普罗米修斯来监控,还是每个应用都部署一套普罗米修斯?

如果是比较轻的应用,那么我们就直接使用平台的普罗米修斯就可以。如果是很重的应用,例如需要集成Istio,那么基本就会建议项目本身部署一套普罗米修斯来做监控。这点其实和日志也比较类似。

Sep 192018
 

七年之痒这个词,大家经常说,不过起源,估计就不是谁都清楚。这是梦露的一部影片的名字,后来大家发现无论是企业,家庭,甚至政府,都在第七年时间段上面临各种麻烦。

OpenStack存在的问题,其实已经不是痒,就挠一下。基本上是已经无药可救。

逐步没落

我是2010年七月份,入职世纪互联云快线公司,开始搞云计算,公司是IDC,所以也就非常关注美国的IDC领头羊Rackspace,那时候在美国,Rackspace云计算是排名第二的,基本上是中国IDC的学习偶像。

非常巧合,我入职的时候,Rackspace和NASA推出OpenStack的项目。所以也就从哪个时候,一直跟着这个项目,一直走到2017年7月份,OpenStack的china Day,真的整整七年。见证了OpenStack整整7年,从零开始到巅峰,走向下坡路的过程。

现在已经离开OpenStack整整一年,回过头来看看,OpenStack到底有啥问题,遇到什么麻烦呢?屁股决定脑袋,我现在的屁股,应该也可以让我说的清楚一点。

经常有朋友问我未来OpenStack的发展趋势,我就用这张OpenStack邮件列表数量统计图来回答这个问题

邮件列表

图片来源:https://openstack.markmail.org/

现在邮件列表的活跃度,2016年到达巅峰,逐步在下降。基本上也是可以代表OpenStack的热度和发展状况的。这种下降的趋势,其实目前来看,还是很难逆转。

OpenStack社区真正干活,写代码的人,数量多少呢?估计已经不超过20人在全职干活。应该不到巅峰时刻的百分之十。

都不挣钱

其实我思考过,OpenStack存在的各种问题,不过归根结底,就是厂商根本就不挣钱。以前一个笑话,就是OpenStack最大的赢家是OpenStack基金会,每年入账1000万美金。

用开源软件来实现企业的盈利,这个无论是国外还是国内,都是非常有挑战性的问题。历史上,linux内核,就红帽实现的盈利。Hadoop的生态圈,至少有2家公司上市。那么对于OpenStack厂商来说,基本还是零。

国内的OpenStack市场,如果从2015年算起,经历了3年的发展和摸索,国内的OpenStack创业公司,基本都已经沦落为高级人力外包的公司。整个OpenStack的市场规模,也不足以支撑OpenStack创业公司的估值。这也导致从2016年,mirantis放弃Pure OpenStack厂商后,国内的厂商也都已经都布其后尘。

从现在看来,OpenStack创业公司上市套现的机会越来越少,也就导致OpenStack投资者也就没啥好日子。

很多朋友抱怨OpenStack很多不成熟的地方,不过说实话,就算把OpenStack做的完美,其实也是无法解决当前的困境,无法盈利。国内OpenStack厂商,最有想法,产品思维的两个厂商,是最先阵亡的,刻通和有云。

TC不作为

OpenStack基金会成立,专门有一个TC,技术委员会,负责OpenStack的技术方向,经过几年的发展,基本已经成为的养老院和老油条。

从2015搞的big tent,大帐篷项目,就是信心过于膨胀,项目从10个暴涨到50多个,不到1年的时间,问题就暴露出来。

谁都不能保证自己的决策不出错,但是出错,不做调整,就是作死。自从2016年Mirantis退出后,OpenStack大量项目出现没人玩的情况下,TC没做任何的事情。

一直到今天,OpenStack项目还是在不断增加,项目参与人手在不断减少。大量的僵尸项目,没人愿意站出来当丑人,直接把项目砍掉。

对比CNCF基金会,目前据说有500多个项目在排队等待孵化批准,批准进入孵化阶段门槛都是非常高,更别说毕业。

企业用户收益差

这点上,在我做容器,paas后,感受更加深刻。对于IaaS来说,他应该是可以给企业带来的效率的提升,资源的节省。不过这个如果和vmware比起来,就基本没啥优势。

国内的私有云市场,主要的客户群体是政府和国企。使用OpenStack的目的,并不是为了提高企业的竞争力,而是更多为了自主创新。

真正尝试使用OpenStack的企业,带来最大的好处,估计是技术人员的能力得到很大的提升。但是给企业的本身带来哪些改变呢?资源的节省,效率的提升,其实公司是没有感觉的。

企业目前使用资源的方式,还是资源创建者和使用者分开,无法真正实现自服务。运维负责创建虚拟机,开发者负责使用。

当用户无法在使用OpenStack中真正受益,那么放弃就是早晚的事情。

其实我当初走PaaS的时候,对PaaS能给企业带来什么好处,还是有疑问的。不过经过不到半年的使用,就能真正感受到Docker,PaaS平台给企业带来的好处,效率的提升,资源的节省,真的一个数量级别的提升。

K8S and PaaS

容器,Docker对OpenStack来说,其实还不能构成威胁。但是K8S,和PaaS的成熟,确实让OpenStack看不到未来。

很多用户受到IaaS,PaaS,SaaS三层架构的影响,认为PaaS就应该跑在IaaS上面,当年一位朋友,还专门去找新浪的SAE部门的老大,确认新浪的PaaS是跑在IaaS上,还是物理机器上。

其实根本不用纠结这个问题,PaaS和IaaS其实是一个松耦合的,PaaS完全可以直接跑在物理机器上。

我经常问容器厂商一个问题,到目前为止,哪些应用是无法跑在容器上的。必须要跑在VM上呢?其实真的没有,或者真的很少,很少。

Snap4

未来的企业数据中心,很可能是PaaS,K8S的天下。

OpenStack其实就算不犯任何的错误,在k8s出现后,其实都很难改变他的下坡路的趋势,无非是让下降平滑一点而已。

技术不是问题

最近好几篇文章,讨论OpenStack,说OpenStack技术复杂,有哪些短板。其实我 是看着OpenStack过来的。我可以说,目前阶段的OpenStack,技术上,还是过得去的。

几大核心项目,提供计算,存储,网络的功能,还是很稳定的。借助OpenStack容器化部署工具,kolla,不仅仅把OpenStack部署好,日志EFK都会部署的很好,目前kolla的社区普罗米修斯已经基本整合好了,再打磨一个版本,应该就用了。

长期用户纠结所谓升级的问题,也顺利解决,甚至可以实现某个组件的降级,例如neutron,你可以上以前版本,因为sdn兼容的原因。

我曾经很霸气回答友商提问,你的OpenStack和我的有啥区别问题。我说我给用户提供的OpenStack,让用户自己可以升级。

kolla即使做的那么优秀,我整整参与了2年,也无法挽救OpenStack的衰退。

Sep 102018
 

公有云的公司讨论的两大热门话题,我想第一是计费,第二应该就是应用商店。IaaS厂商都在想办法做一个应用商店,很可惜,基本都失败了。

当年我曾经也是一个产品经理,调研过各大厂商的应用商店。这里我就做一个总结

虚拟机年代

镜像

把应用放到镜像里,这是最容易想到的应用商店,虚拟机启动后,做的配置,技术上还是可以实现。AWS在2010年的时候,应该就是差不多这种情况。

AWS上有大量的应用的镜像,你启动后,就可以使用,看起来是很方便。不过其实也就是自己使用,很难满足复杂的场景,基本都是 all in one。而且软件的版本,是一个噩梦,一个版本一个镜像,真的受不了。

脚本

很多人自然就想到,base的镜像都是一样,在虚拟机启动的时候,运行相关的脚本,来部署相关的软件。cloud-init,基本就是这个用途。

在国外的网络速度的情况,基本不是问题。不过在国内,基本就没戏了。而且这种方式,还是单机版本,复杂点,就基本没办法。

开发模式

有专门针对开发者的应用商店,因为开发者,有不同版本的需求,就简单lamp为例,php版本,mysql的版本,apache的版本,排列组合太多了,如何解决这个问题呢?

把软件都放到虚拟机里,用户选择需要什么版本,就启动相应的组件。这方面,bitnami做的应该是最好的。这家公司,从2011年开始到现在,做了8年,也在不断改进。

Agent模式

为了应用商店能投入生产,能部署复杂的应用,支持灵活的定义,web和数据库,可以合并部署,也可以分开部署。那么就有人想到使用agent来实现。

rightscale,国外著名的云管厂商,就是通过植入一个agent,来对虚拟机进行应用的部署,类似配置管理工具,这样就非常灵活,基本可以实现软件的全生命周期的管理。

通过agent,你可以实现对应用进行监控。那么对于IaaS来说,如果所谓弹性扩展,只考虑cpu,内存,那么是很胡扯的。

Sep 102018
 

我也算是折腾了一年的OpenShift,OpenShift,就是Kubernetes的一个发行版,我的感觉,其实他们相似的地方还是很多,对我的改变并没有想象那么大。

下面总结一下他们的相同的地方

看不到对手

无论是OpenStack还是kubernetes,都是在重围中杀出来,一骑绝尘,根本看不到对手。

OpenStack干掉CloudStack,Eucalyptus,OpenNebula。

Kubernetes,干掉swam ,messos

都是压倒性的优势胜出。

区别就在于,OpenStack胜出以后,就迷失了方向,往自己不擅长的边缘计算,最终只能是一条不归路。

K8s胜出后,社区的想法还是很多,还保持1年4个版本的迭代。

一个是python最大的开源项目,一个是Go语言最大的开源项目。

基金会管理

OpenStack专门成立基金会管理,不过基金会不涉及技术方向,技术方向有专门的TC,技术委员会管理,当big tent,大帐篷策略后,TC的用途也就不大,而且TC混日子的人也多了。

OpenStack官方目前有60多个项目,其实大部分都是僵尸项目,停留在实验室阶段,根本就没生产使用案例。真的能用的项目,应该不超过15个。

k8s,其实也归属CNCF基金会。吸取OpenStack基金会的教训。对项目是加入,孵化,毕业,有了严格的流程。这个可以很好避免。

OpenStack技术设计的时候,很纠结规模优先还是功能优先。公有云为主,还是私有云为主。这个也导致一直无法明确。

我的理解,K8s的功能,逐步的玩企业级发展。无论是用k8s支持有状态的应用,还是让k8s管理vm,方向都非常明确。

架构

看完OpenStack的架构演变过程,再看k8s,感觉相似的地方很多的。

  • Nova==CRI-O
  • cinder=CSI
  • Neutron=CNI

计算,存储,网络,都搞一个,无论是OpenStack,还是k8s,基本都是一样的玩法,让厂商都能参与进来。

目前k8s上没有统一的身份认证,就没有keystone,k8s上,没提供镜像仓库,就没有glance。

事实上也是有一堆的应用,对于OpenStack组件

  • keystone+ldap=keycloak+ldap
  • glance=Quay or harbor

部署

大家都感觉OpenStack很复杂,如果和k8s比起来,其实算是简单的。k8s的部署,单单是一个双向的证书,都能让你折腾一个半天。

但是用户一般感觉k8s比较简单,一个原因,就是k8s自己做的部署管理工具比较成熟。目前红帽的OpenShift,已经采用全容器化的部署方案部署OpenShift,并且容器的管理,也是在Openshift上,真的比较完善。升级的问题,也就变得很简单。

OpenStack目前部署方案的方向也是容器化部署,不过还无法实现用k8s来管理,只能通过ansible来管理。

对我来说,

  • kolla-ansible 部署OpenStack
  • openshift-ansible 部署OpenShift

都是通过ansible来实现。

Jun 102018
 

已经很久没写文章,孩子7岁半的文章,也偷懒没写,所以今天就必须完成他八岁的记录。

从去年9月份,我就来上海工作,所以最近半年多,不在身边。

只能说现在小孩,还真的是一个小孩。保持着小孩的天真,希望时间可以更长一点。

小孩的同学的妈妈,给孩子手工做了一个植物大战僵尸的蛋糕。真的高兴坏了。

僵尸

蒲公英

欺负

身高体重

最近1年,感觉孩子体重增加很快。饭量基本上和成人没啥区别。

  • 身高:136 厘米
  • 体重:64斤

小孩牙齿保护良好,视力正常。没去看过牙医。

二年级小孩

很多朋友都问北京小孩上学负担的情况。据我了解,在北京上学,小孩的负担,应该是最小的。毕竟是在天子脚下,需要按照教委指示来做。

小孩的负担,其实和地域,学校,班主任,家长,有密切关系。我也就只能介绍一下通州后南仓小学的情况。

周1,周5,是早上八点上课,下午3点放学

周2,周3,周4,下午的第三节课,就是3点到4点,学校安排了一节课外活动,你可以自己报名参加各种班,我小孩参加的是:足球,手工艺,美术。

一个学期,开学,期中考试完毕后,期末考试前,课外活动都会停课,大概1,2周。

一个学期,那么大概是有4个月,应该有1个月,小孩都是3点下课的。

并不是北京所有学校都是这样,旁边的一个小学,就是五点放学。

中午是11点半放学,1点40上学。目前学校已经提供中午饭,可以在学校吃中午饭,休息。不需要出校门,就可以搞定。饭费每天20元。

至于作业,其实应该真的不多。有一次小孩的暑假作业给一个外地同学介绍了一下,他们说,我一个晚上的作业,都差不多这个多。回家的作业,应该1个小时,就差不多。动作快的小孩,学校就可以完成老师布置的作业。

小孩每天晚上,基本可以做到八点准备睡觉,9点,肯定就是在梦乡。这点还是很幸福的。

小孩的学校,真的是快乐教育。比他们学校快乐的学校,估计不会太多。

玩游戏

这其实对于很多家长来说,也是不可回避的一个话题。如何控制小孩玩游戏。现在已经好很多了,不至于小孩下课后,再外面玩游戏。

游戏对小孩的吸引力是巨大的。如何疏导,真的应该提前准备。让小孩学编程,自己玩自己写的游戏,这其实也是一个办法。

培训班

这也是家长聊天必聊的话题。有些地方据说竞争激烈到,连报啥补习班都是高度保密的事情。北京确实是一个不错的地方,你想学啥,了解啥,都能找到相应的培训班。

篮球班

儿子从去年报了一个篮球班,上了一年的篮球课。不过今年3月份已经停了。篮球组织的不算太好。让小孩入门,玩玩就可以。

游泳班

这个其实是去年暑假报班学习的,学会的游泳,真不容易。现在已经热爱游泳,最近一周,每天晚上,都喊着要去游泳。家里小区底下就是游泳池,其实非常方便。

学会游泳,确实会增加很多乐趣。小孩每次出去玩,玩水确实更加起劲。

在泳池里,小孩游泳速度,比老婆还要快一点,看来真的是苦练的结果。

编程班 Scratch

上次有一个朋友的blog介绍他教自己儿子学编程,5岁,基本小学3年级的数学,都已经不是问题。表妹在腾讯,据说要组织公司员工下一代编程大赛,各个程序员都在准备小孩的参赛。

我是不会编程,所以这点上也就无计可施。赶巧,最近两年,儿童编程,开始流程,就很多公司开始创业,专门搞儿童编程。所以也就可以给小孩选一个编程班。

Scratch儿童编程,这个我是知道,老外设计的课程的水平,能力,我是非常信服的。最后我们选择了一个网上培训Scratch的班。目前已经上课6个课时,效果还是非常好。

老师是1对3到6个小孩,网上视频远程授课。从老师的讲解,到实际效果,安排,其实做的非常不错。

微信公众号:水木青少

大家可以找他们聊聊。我是很少推荐这个,不过搞技术的,让孩子学学编程,应该非常必要。

我听了一次儿子上课的过程,他现场的提问的问题,我都能感觉到他真的在提高。现在是一周一次课程,一次课程是一个小时,加上半个小时答疑。

目前安排是在周6晚上8点到9点。

课程分成10个等级,我查了一下,应该是培训学校根据自己的理解,做的等级划分,每个级别是15小时的课程。适合5岁到16岁的小孩来学。感觉5岁还是太小,7岁应该是差不多了。

可以这样理解,如果达到100个小时的课程,后面就可以进入app制作培训的过程,或者python,真吓人。我真的要考虑一下,是否要提前学一下python。

英语

从小孩上二年级开始,就给他报了一个牛津英语的口语班,就是每次上课2个小时,老师是1个对6,进行交流。课程的效果还是非常不错。小孩比较喜欢去上这个课程。能让小孩开口说英语,就是一个非常好的开始。

也都能明显感觉到小孩现在已经能开口说英语,等着下次带他出国锻炼一下。

成本

小孩的课外班的数量,小时数,和成本是密切挂钩。上海这边的家长,据说课外安排更多。

北京这边,每个小时,大概是130块钱左右。小孩一周上3个小时的课外课,2小时英语,一个小时编程。大概就是400块钱。一年下来,应该2万。

这个应该是我身边认识的,最低的课外班投入最少的。我听说同学小区的一个家长,现在小孩五岁,一年的费用都超过7万。就算不考虑钱,上课也是累死人。

孩子成绩

其实我对小孩的要求就是保持中等水平就可以,学校的要求就是考试在90分以上,老师就不会找家长聊。

我个人是不操心所谓输在起跑线上。这是马拉松,不着急。

小孩的同学的家长,基本都给他们安排了大量的补习班。小孩都挺累的。有些家长,培训班,在寒假,暑假,就开始准备下一个学期的课程。其实真没太多的必要。

通过周末一个编程,一次英语口语,相信可以让孩子在未来2年内,3,4年级里,数学和英语,都能跟上,问题应该不大。

小孩班里46个小孩,他大概排名是20到30名间,一直保持下去,问题不大,我还是很有信心。

旅游

孩子上学后,旅游就只能是暑假和寒假。暑假去了一趟泰国普吉,寒假,回广州,去了珠海的长隆。

争取每年都带小孩出去走走。让他锻炼一下。

上一年春节,我们是开车回广州,今年的春节,是坐高铁回去,路过的省市,都记住了。学了很多地理知识。

Feb 272018
 

这篇文章,其实是我完全参考国外网站的文章和视频,操作的记录。做了一点调整。

文章来源

http://www.learnitguide.net/2016/01/configure-openldap-server-on-rhel7.html

由于openldap 2.4的版本有很多改变,视频里的操作,其实有些地方是有问题的。

https://www.itzgeek.com/how-tos/linux/centos-how-tos/step-step-openldap-server-configuration-centos-7-rhel-7.html

这篇文章的做法,应该是比较标准的。我也把文章的内容更新一下,确保是内容的准确。

https://linuxhostsupport.com/blog/how-to-install-ldap-on-centos-7/

综合多篇文章,希望可以实现完整的搭建过程。 Continue reading »