前言:这是一篇专业的非专业博客,仅供参考。如有雷同,请您删掉
项目立项,需要一台服务器上传管理代码。真机安装Ubuntu16.04
真机安装后能上网,所以不用解决上网问题(但是不能翻墙。。。。)
一、用Network manager设置成静态IP
这步在服务器桌面版右上角点击网络设置,IPV4Setting里修改成manual(手动)、记得要添加当地的DNS。深圳的DNS是202.96.134.133
二、apt源的修改
由于公司有网络访问的限制,用阿里源,网易源的都不能正常更新apt。只能选用教育源了,在此选用了清华大学Ubuntu16.04的源地址
修改/etc/apt/sources.list,把里面的内容先备份,然后改成:(系统自带的vi难用得一匹,先用sudo gedit /etc/apt/sources.list,有图形界面)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
再用sudo apt-get update.OK
三、系统自带的vi难用的一匹,在没有更新软件源的时候,根本安装不了VIM,更改完源后,下一步就是安装vim
sudo apt-get install vim
完事
四、安装ssh服务
需要在Windows下访问服务器,这样有问题可以在Windows上百度谷歌,然后再登录到Ubuntu上解决,不用跑来跑去
apt-get install openssh-server (客户端可以不安装,但是server要安装)
ps -e|grep ssh 可以查看ssh服务是否启动了
/etc/init.d/ssh start 可以启动ssh服务(start|stop|restart)
/etc/ssh/sshd_config这个文件是配置SSH的,可以修改这个,一般来说没什么必要,ssh默认端口是22,可以修改成别的(一般不会修改,公认的ssh端口是22)
五、安装并配置Samba
方便在Windows和Ubuntu下做文件的交互,一般会安装配置Samba,使用Windows去访问Ubuntu的文件系统
1、安装Samba
sudo apt-get install samba samba-common
2、创建交互的目录并更改权限
sudo mkdir /workspace
sudo chmod 777 /workspace
3、为Windows指定登录用户
sudo vim /etc/samba/smb.conf,在文件末尾添加:
[work] #Windows访问的时候显示的文件夹的名称
path=/workspace #Ubuntu对应的共享文件夹
browseable = yes #表示该目录可用
read only = no #不是只读模式
create mask = 0775 #创建文件的权限是775
directory mask = 0775 #创建目录的权限是775
guest ok = no #游客不能访问
valid users=root #能访问的用户是root,用户必须存在,不存在就添加一个新用户
4、然后重启该服务,不不不,太天真了
要先给Samba添加用户啊,
smbpasswd -a root(用户对应刚才的valid users)
5、重启该服务
sudo service smbd restart
6、在Windows下访问\\@ubuntuIP\work,输入刚才设置的用户密码,完事
六、配置gitolite
gitolite是一种比较适合中型的git服务器,如果你的需要时要大型的git服务器,那。。。。看到这里你可以点击关闭页面了,这个教程可能不适合你。
1.安装工具
sudo apt-get install git
sudo apt-get install git-core
2.添加gitserver用户
useradd -m gitserver #添加一个gitserver的用户
passwd gitserver #设置密码
3.下载gitolite
su gitserver
mkdir -p /home/gitserver/gitolite/bin
cd /home/gitserver/gitolite/bin
git clone git://github.com/sitaramc/gitolite
gitolite/install -to /home/gitserver/gitolite/bin/
4.添加管理员用户
useradd -m gitadmin
passwd gitadmin
su gitadmin
cd ~
mkdir .ssh
ssh-keygen -f .ssh/gitadmin #生成管理员的公钥和秘钥,公钥是gitadmin.pub,秘钥是gitadmin
cp -rf /home/gitadmin/.ssh/gitadmin.pub /tmp #放在那里都可以,只是要主要权限用户问题,放在tmp是因为很多博主都放在tmp,这样显得我是有做过功课的
su gitserver
cd /home/gitserver/gitolite/bin/
./gitolite setup -pk /tmp/gitadmin.pub #这个就是上面管理员的公钥,设置gitadmin为gitolite的管理员
****假如出现****
WARNING: keydir/git_key.pub duplicates a non-gitolite key, sshd will ignore it 或者fatal 授权错误
这种警告,说明配置有些问题,需要删除/home/git目录下的
.gitolite 和.gitolite.rc 和 repositories 和 ~/.ssh/authorized_keys四个文件!!
5.管理员配置
su gitadmin
vi ~/.ssh/config #管理员的config
host gitserver
user gitserver
hostname 127.0.0.1 #这里是同一台机器,所以用127.0.0.1的IP
port 22
identityfile ~/.ssh/gitadmin #对应私钥
git config --global user.email "gitadmin@sina.com"
git config --global user.name "gitadmin"
下载server的配置
git clone gitserver:gitolite-admin
下载下来的gitolite-admin文件夹,里面是两个文件夹conf和keydir,其实这两个文件是从gitserver克隆下的,对应在/home/gitserver/.gitolite这个隐藏的文件夹内
在conf里可管理repository group和user group
vi conf/gitolite.conf
repo gitolite-admin #管理的配置,也是上面的 git clone gitserver:gitolite-admin中的 gitolite-admin
RW+ = gitadmin #用户,对应的权限是RW+,可读写
repo testing
RW+ = @all
添加全新的repository,在上面提到的gitolite.conf文件中配置好对应的名称和权限,再push到server即可,server会自动帮你创建一个empty的bare repository。
对应的keydir是用户的公钥
把上面添加的用户的公钥添加到这个文件夹里
配置完后,要git push到gitserver中才能生效
6.添加测试用户
useradd -m gittest#添加一个测试的用户
passwd gittest#设置密码
cd ~ #切换回gittest用户目录
ssh-keygen -f ~/.ssh/gittest
vi ~/.ssh/config #这个是测试用户的config
host gitserver
user gitserver
hostname 127.0.0.1 #这里是同一台机器,所以用127.0.0.1的IP
port 22
identityfile ~/.ssh/gittest #对应私钥
切换成gitadmin
su gitadmin
git clone gitserver:gitolite-admin #新建配置信息库
cd gitolite-admin
vi conf/gitolite.conf
@manager = gittest #指定用户访问,这里对应的是
@repo_1 = a b #repo_1中有a仓库,b仓库
@repo_2 = c #repo_2中有c仓库
repo gitolite-admin
RW+ = gitadmin
repo testing
RW+ = @all
repo @repo_1 #配置repo_1的权限
RW+ = @manager #manager用户的有读写权限
repo @repo_2 #配置repo_1的权限
RW+ = @manager #manager用户的有读写权限
添加全新的repository,在上面提到的gitolite.conf文件中配置好对应的名称和权限,再push到server即可,server会自动帮你创建一个empty的bare repository。如上配置,在gitserver中会在repositories/文件夹中自动添加仓库a.git/、b.git/、c.git/
配置完conf后,还要添加用户的公钥,在keydir/目录下添加用户公钥
vi gittest.pub #直接cp /home/gittest/.ssh/gittest.pub 会有文件的属主问题,那就直接新建吧,里面也就两句话,CV大法过来就行
然后推送给server端就行了。
git status
git add conf/gitolite.conf keydir/gittest.pub
git commit -m "add a test user" #新用户的话,git要config一下,也是就是要config名字,邮箱
git push
完事
su gittest
cd ~
git clone gitserver:a #就可以克隆a存库的文件下来了,新建的里面啥都没有哦
暂时需求就那么多,溜了溜了。