• linux
  • (Page 2)

Blog Archives

CentOS6.5 安装gitlab以及gitolite迁移gitlab

gitlab 的安装使用以及数据结构

安装

环境:

  • CentOS6.5
  • 基于 nignx + unicorn 搭建的应用环境, 如果想要换成passenger,可以参考网上的文档
  • ruby环境是基于rbenv搭建的

1: install vim

2: install git > 1.7.10

  • install git

reference: http://tecadmin.net/how-to-upgrade-git-version-1-7-10-on-centos-6/#

  • git config

3: install dependent rpm

  • first: replace yum repo

  • second: install

4: install rbenv && Ruby

  • add users: git

  • use rbenv-installer install rbenv

  • install Ruby

  • install bundler

5: install gitlab

  • install gitlab shell

  • install mysql, redis, nginx

refer: http://blog.58share.com/?p=291

  • install gitlab

  • install gem

  • start server

  • check env

  • 编译静态文件配置nginx配置

  • 绑定host

  • 部署成功

  • 安装文档refer:

http://www.digitalsanctuary.com/tech-blog/general/installing-gitlab-on-redhat-enterprise-5-rhel-5.html

https://gitlab.com/gitlab-org/gitlab-ce/blob/6-6-stable/doc/install/installation.md

将gitolite迁移到gitlab步骤

1. 初始化mysql 配置

初始化后:即可以登陆超级管理员账户:

2. 将现有的项目导入到gitlab中

3. 获取root的api密钥token 并写如客户端配置并执行api相关操作

  • 创建用户并塞入对应的 ssh-key, 新创建的用户无创建分组的权限。
  • 获取已经创建的 分组, 并根据分组,将用户写入不同的分组中
  • 将admin 管理员加入所有的分组中, 手动将对应的用户设置为管理员,并允许创建分组
  • 有邮箱的用户操作,涉及到线上数据库的更新,线上测试机器的拉取,手动创建虚拟用户并添加对应的权限
  • 合并人员需要设置为master 针对该项目
  • 管理员账户,并修改他们对应的权限控制以及创建的项目数

4. 写脚本将所有通过api创建的用户的确认状态修改为已确认状态,并在项目下执行操作

$ vim lib/task/gitlab/user.rake

执行操作

其他的相关配置

  • 配置smtp 邮件服务

$ vim config/environments/production.rb

  • 配置ldap

$ vim config/gitlab.yml

NOTES: 迁移项目遇到的坑

1. 通过接口获取用户数据,默认只能获取20条, 可以分页,每页最多100条数据

2. 通过接口获取项目,默认只能获取20条

3. 如果是迁移项目,若以前的git项目是有多层级接口,需要修正为一层,比如 java/abc/aaa.git => java/abc_aaa.git, 因为gitlab是不支持多层级结构的

4. 项目创建中有些带有关键字的项目是不能创建成功的,比如 java/admin.git , ruby/services.git

5. gitlab clone项目无论是ssh, http 都会调用http请求,通过http请求判断用户的权限等操作。而我们的http请求是做了ldap访问权限设置的,因此需要对将本机(gitlab服务器)的IP加入ldap的白名单中

相关命令参考

  • 将现有的项目导入到gitlab中去

* 添加所有的用户到所有的分组中(admin的角色是owner)

* 添加所有的用户到所有的项目中(admin的角色是master)

* 添加一个特殊的用户到所有的分组中(角色为developer)

* 添加一个特殊的用户到所有的项目中(角色为developer)

## gitlab 其他相关参考 #### API相关 如果gitlab中有你的公钥,你就可以通过authentication_token来调用api

gitlab api gem

refere: https://github.com/NARKOZ/gitlab

问题: 这个gem包的接口是v2的,但是gitlab 现在稳定版的是 V3了,但是部分功能能用,有些接口中描述的功能是需要自己去写的

other helps

refer:http://mrk1869.com/blog/gitlab_installation/

git升级解决方案

How to Upgrade Git version >= 1.7.10 on CentOS 6

refer:http://tecadmin.net/how-to-upgrade-git-version-1-7-10-on-centos-6/#

git clone项目时报无环境变量

refer:http://thoughtpointers.net/2013/04/18/using-rbenv-with-gitlab-shell-on-os-x/

git push error

解决: 修改 gitlab-shell/config/gitlab.yml 中的redis-cli 的路径为正确的路径

解决: 是由于缺少内存导致的,如果用的是vps的话,用free -m 看看是否是内存太少,或者是没有使用swap内存,如果没有swap,需要加swap,一般是内存的1倍或者1.5倍

Reference

http://mrk1869.com/blog/gitlab_installation/ http://www.digitalsanctuary.com/tech-blog/general/installing-gitlab-on-redhat-enterprise-5-rhel-5.html https://gitlab.com/gitlab-org/gitlab-ce/blob/6-6-stable/doc/install/installation.md http://git.58share.com/help/api/README

this is a project for gitlab api

https://github.com/NARKOZ/gitlab

https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/groups.md

更炫的命令行输出

更炫的命令行输出

参考:http://stackoverflow.com/questions/1489183/colorized-ruby-output

输出:

ruby环境搭建,相关工具的配置使用

ruby环境搭建,相关工具的配置使用

相关工具

  • git
  • vim
  • nginx
  • mongodb
  • redis
  • memcached
  • mysql
  • rvm || rbenv
  • ruby
  • 系统库(Centos: yum, mac: brew, ubuntu: apt-get)本文档主要是:Centos环境的搭建
  • varnish

(更多…)

诡异的SSH登陆

解码学

对称加密 des

Eg:同样的东西,密码两个人都知道,不安全 2)非对称加密

rsa

Eg;一把钥匙(私钥)配多把锁(公钥 ),只有拿了钥匙的人能打开 3)单向不可逆加密

md5

口令登录:我拿了服务器的公钥,我加密一段数据到服务器 服务器要考虑你的公钥是否可信 ,用户名,密码

密钥登录:你把你的锁给了服务器 ,服务器加密了一段随即数据给了你 ,如果服务器看见你 拿你的钥匙解开了,则你是可信的。

分歧点:两者的区别不是发生 c 去访问 s 的时候,而是发生在 s 验证 c 是否是可信的。 情形一:我拿了服务器的公钥,我去登录服务器,服务器检测我是否可信 ,(口令登录) 情形二:我也有一把钥匙一把锁 ,我把锁给了服务器 ,我登录服务器的时候 ,服务器不弹出 输入用户名或密码 ,服务器自己用你的锁加密一段随即数据 ,拷贝到你的计算机中来 ,如果 你的钥匙能匹配上,则你是可信的(密钥登录)

概念

(更多…)

imagemagic 使用

identify

相关参数:
(更多…)

CentOS6.3 ext3/ext4文件系统恢复

linux ext3/ext4文件系统恢复

1.下载源码包

2.安装依赖包

3.恢复

参考:http://qyiyunso.blog.163.com/blog/static/350776862010826115537113/

Memcached的安装以及使用

Memcached的安装以及使用

Memcached概述

1.简介

memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

2.特征

memcached作为高速运行的分布式缓存服务器,具有以下的特点。

*协议简单 : 使用简单的基于文本行的协议,可以通过telnet进行数据的存储以及取出
*内置内存存储方式 : 不会对数据持久化,重启memcached或操作系统,数据丢失
*memcached不互相通信的分布式 : 各个memcached服务器不会相互通信以及共享信息
(更多…)

CentOS6.3 lnmp环境搭建

CentOS6.3 lnmp环境搭建

  • 系统环境: CentOS6.3 32位bit版本
  • 软件环境: Nginx-1.2.7 + MySQL-5.5.27 + PHP-5.4.11

1.安装相关扩展以及编译工具

(更多…)

device “eth0″ does not seem to be present, delaying initialization

device “eth0″ does not seem to be present, delaying initialization

昨天在vm里面克隆了个虚拟机,克隆之后,启动了网卡起不来,已启动就报
Device eth0 does not seem to be present, delaying initialization.[FAILED]
经过各种google,最终要是找到了答案
使用克隆后的虚拟机时发现原来在基本系统中的网卡eth0到了新系统却没有了,使用ifconfig -a会发现只有lo。
因为基本系统的网络相关配置都是基于eth0的,如果基于此克隆虚拟机继续克隆或复制新的虚拟机,网卡的标识每一次都会自动加1变成eth1(第二次克隆会变成eth2),dmesg却显示内核只识别到网卡eth0。

原因分析: 很多Linux distribution使用udev动态管理设备文件,
并根据设备的信息对其进行持久化命名。例如在centos中,udev会在系统引导的过程中识别网卡,
将mac地址和网卡名称对应起来记录在udev的规则脚本中。而VMware会自动生成虚拟机的mac地址。这样,
由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改变,
udev会自动将该mac对应于网卡eth1。以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,
而其实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。解决方案:
udev将mac与网卡名称的对应关系保存在/etc/udev/rules.d/70-persistent-net.rules中,
可以看到文件内容如下

在克隆出的虚拟机中只要删除跟NAME=”eth0″相关的行,并且把eth1的改为eth0,并重启系统即可。

转载自:http://www.linuxyan.com/linux-service/181.html

CentOS6.3初次安装网卡配置

CentOS6.3初次安装网卡配置

背景:安装6.3版本的CentOS后,发现没有网卡配置信息

(1).配置网卡

vim /etc/sysconfig/network-scripts/ifcfg-eth0

(更多…)