人员、任务、进度、工时、周期、依赖关系 一目了然。无论项目大小、简单复杂都能轻松管理
缘起
最近因为要换工作了,时间比较空闲,所以打算好好整理下自己的博客。想来博客写的越来越少也挺惭愧,好多东西都只停留在笔记的草稿阶段,没有写成博客,后续慢慢整理出来。回到正题,我开博客伊始一直用wordpress(下文简称WP),有点自然不必多说,成熟稳定,功能全面,主题丰富;但是我最近渐渐在思考我真的需要它么,我的日常操作不过是当我的笔记草稿足以成型为一篇博客,我把它粘贴到WP的编辑框,选择下分类,打上标签,点击发布,仅此而已;为此还安装插件让WP支持直接在编辑器里贴mar
简介
就像所有服务器批量管理工具(puppet有DSL,salt有state)一样,ansible也有自己的状态管理组件,叫做playbook。所有这些类似的概念的东西都是让你用一种更简单的语言(而不是用脚本)来描述你的服务应该是什么样子的,然后这些工具根据你的描述将服务器变成你希望的样子。有了这么一层抽象后,服务部署和配置就变得更加的跨平台了,也提高了可复用性。但请注意,playbook不是万能的,因为playbook底层是在用模块来完成任务,因为模块有限,所以很多时候还是
自带工具
注意: 如果服务器的ssl证书是自签名的,那么在客户端的ldap.conf文件加入一行TLS_REQCERT never,否则认证会不通过。
安装
ubuntu执行:
apt-get install -y ldap-utils
centos执行:
yum install -y openldap-clients
使用
ldapsearch
ldapsearch,搜索目录树,示例如下:
ldapsearch -v -x -H ldaps://example.
安装OpenLDAP
ubuntu
确保本机有符合FQDN的主机名,因为安装程序会根据主机名提取域来作为baseDN
apt-get install slapd
安装过程中会提示设置管理员密码
centos
yum install slapd
配置OpenLDAP
slapd.conf和cn=config
配置slapd服务有两种方式:
slapd.conf是传统方式,修改配置文件然后重启服务,centos默认采用这种方式。
cn=config是新的配置
目录服务与关系数据库
目录数据库系统和关系数据库系统都是用来保存数据的,但是他们有两个主要的不同点:
数据结构,目录服务只有树形结构,不像关系数据库有复杂的数据结构。
查询速度与写入速度,目录服务适合查询,不适合写入。
基本概念
在浏览LDAP相关文档时经常会遇见一些概念,下面是常见概念的简单解释:
DIT,目录信息树,近似相当于一个表
Entry,条目,也叫记录项
DN,是无歧义标识一个条目的名字,如cn=alair,dc=account,dc=xdays,dc=in
背景
我一直想要打造这样一个干净且高效的开发环境:干净指与开发隔离,不污染物理机,我已经讨厌重装系统了;高效是指自动化,我需要每次都安装一对依赖,修改一些配置文件等等繁琐的操作,而且自动化过程要快。最开始自己用virtualbox新建虚拟机然后用其自带的克隆功能复制出来;后来用vagrant配合一些配置工具能达到不错的效果,一个文件即可生成开发环境,这应该是主流了,但是这种方式有个缺点就是太慢;现在我自己用docker+supervisor摸索了一个更快的方案。
组件
su
简介
vagrant是一个基于业界成熟的虚拟化技术打造可配置,可重新生成和可移植的工作环境的工具,一个配置文件完成所有状态定义。
特性
简单,一个配置文件搞定
可通过多种方式自定义虚拟机配置,如shell脚本,ansible等
网络配置,支持私有,共有网络配置
目录同步,保持guest和host文件同步,默认将当前目录映射到虚拟机的/vagrant下
多虚拟机支持,构建自己的集群测试环境
多中虚拟技术支持,如virtualbox,vmware,AWS和docker
插件机制
基础概念
JMX
JMX就是Java Management
Extentions,为Java程序提供管理功能的框架。看了几个介绍,感觉这个说明比较通俗易懂。一句话说就是JMX为你提供了一个通过特定协议管理应用程序的方案,而我们这里主要用其查询配置和监控数据的功能。
External Check
通过主动调用自定义脚本来获取监控数据,脚本的输出即为该监控项的监控值,这种方式有更强的定制化。因为下午在这里踩到了坑,走了不少弯路,所以这里要对配置方法做个特殊说明。配置监控项时选择e
问题
调试模块的时候需要不断修改代码,只有重新加载模块才可以看修改效果,而重新加载的方法有reload内置方法和重新运行解释器,这样都不是很方便,我希望修改代码能立刻生效。
解决
IPython有个autoreload扩展,只需要开启扩展并定义扩展的模式即可。
开启扩展
默认的配置位于\~/.config/ipython/profile_default/ipython_config.py,编辑该文件新增:
c.InteractiveShellApp.extensions =
简介
如官方文档所说,docker是一个自动将应用打包成轻量可移植自包涵的容器的引擎。开发者构建的应用可以一次构建全平台运行,包括本地开发机,生产环境,虚拟机和云等。目前处于开发阶段,不可用于生产环境。在你启动一条命令时docker会调用lcx等其他一个组建为这条命令构建一个container,包含了进程运行的所有资源。但是官方文档以说明,docker处于开发阶段目前还不能用于生产环境。
特性
Go语言编写
基于lxc的进程级隔离,而lxc基于cgroup,轻量级
通过cg