centos 7 服务器初步配置

zsh,Oh-My-Zsh,git服务器搭建

Posted by siqing on April 17, 2018

bash换成zsh

安装zsh

sudo yum install -y zsh
  • 查看当前
echo $SHELL
  • 设置zsh
sudo chsh -s /usr/bin/zsh

安装Oh-My-Zsh

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装zsh-autosuggestions

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

编辑.zshrc文件

vim ~/.zshrc

plugins=(
    git
    zsh-autosuggestions
)

更新.zshrc文件

source ~/.zshrc

git服务器

安装git服务器相关依赖

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y

更换高版本git

yum remove git -y
wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz
tar -zxf git-2.5.0.tar.gz
cd git-2.5.0
./configure --prefix=/usr/local/git
make && make install
ln -s /usr/local/git/bin/* /usr/bin/
git --version #显示版本号,安装成功

git配置

git config --global user.name "**"
git config --global user.email "**@**.com"

安装gitosis相关依赖

yum install python python-setuptools

gitosis权限管理

在随意一个目录下,安装用的,建议在一个固定放代码的地方

  • 下载
git clone https://github.com/res0nat0r/gitosis.git
  • 安装
cd gitosis
python setup.py install
  • 生成服务端ssh公钥

      ssh-keygen -t rsa
    

    这里会提示输入密码,我们不输入直接回车即可。

  • 创建git管理员账户,配置git
    • 创建一个账户(git)作为git服务器的管理员,可以管理其他用户的项目权限。
      useradd -c "git version manager" -m -d /home/git -s /bin/bash git  # 本步骤是生成一个专门用于管理GIT的账户
      sudo passwd git  # 设置git用户的登录密码为git
    
  • 初始化gitosis
mv id_rsa.pub /home/git/ # 把公钥移动到/home/git目录中
su git # 切换到git账户中进行操作
cd /home/git
chmod 755 ./id_rsa.pub
gitosis-init < ./id_rsa.pub # 将该公匙导入gitosis里,这时客户机机已经有了git的管理权限了
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update # 添加权限

服务器上创建项目仓库

使用git账户在服务器上创建一个目录(test.git)并初试化git项目仓库

    su git
    cd /home/git/repositories
    mkdir test.git
    cd test.git
    git init --bare
    exit

使用gitosis管理用户操作项目的权限

mkdir gitadmin
cd gitadmin
git clone git@(公网ip):gitosis-admin.git

clone下来会有一个gitosis.conf的配置文件和一个keydir的目录。gitosis.conf用于配置用户的权限信息,keydir主要用户存放ssh公钥文件(一般以“用户名.pub”命名,gitosis.conf配置文件中需使用相同用户名),用于认证请求的客户端机器。

  • 编辑gitosis.conf文件,设置权限
[gitosis]

####管理员组
[group gitosis-admin]
####管理员用户名,需要在keydir目录下找到相应的.pub文件,多个可用空格隔开(下同)
members = siqing root
####可写项目仓库
writable = gitosis-admin

####可写权限组
[group testwrite]
####用户
members = siqing
####只读仓库
writable = mytestproject

####只读权限组
[group testread]
####用户
members = zhangsan lisi
####只读仓库
readonly = mytestproject
  • 向服务器推送修改

    因为这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效。

git add .
git commit -am 'add a user permission'
git push origin master

重新启动一下sshd服务

systemctl status sshd.service
systemctl restart sshd.service
  • 客户端clone代码或者推送

clone

git clone git@(服务器ip):mytestproject.git

推送

mkdir testgit
cd testgit
git init
echo 'init' > README.mk
git add .
git commit -am 'init'
git remote add origin git@(serverip):mytestproject.git
git push origin master

mongodb

安装

参考 mongo官网

  1. 配置yum源
vim /etc/yum.repos.d/mongodb-org-3.6.repo

写入下面

# [mongodb-enterprise]
[mongodb-org-3.6]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.6/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
  1. 通过yum安装
sudo yum install -y mongodb-org
  1. 启动mongo
systemctl start mongod.service
  1. 查看版本
mongo
  1. 设置开机自启动
systemctl enable mongod.service

配置远程访问

  1. 修改配置文件
vim /etc/mongod.conf
# bindIp: 127.0.0.1 那一行可以注释掉,也可以修改为如下所示:

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.

# 远程连接数据库验证,旧版本为auth = true
security:
    authorization: enabled
  1. 查看数据库版本
~ mongo
MongoDB shell version v3.6.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.5

> use admin
switched to db admin

> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.6" }
{ "_id" : "authSchema", "currentVersion" : 5 }
# 发现版本不一致

> db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.6" }
{ "_id" : "authSchema", "currentVersion" : 3 }
# 一致了
  1. 添加用户
> db.createUser({user:"admin",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWrite","db":"test"}]})
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		},
		{
			"role" : "readWrite",
			"db" : "test"
		}
	]
}
  1. 重启mongo 并开放27017端口
systemctl restart mongod.service
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
  1. 远程可视化工具
    1. db设置为admin
    2. userName: 你设置的用户名
    3. password: 你设置的密码
    4. 连接的地址: 你的服务器ip:27017