CentOS一步一步安裝JumpServer

環(huán)境

????系統(tǒng): CentOS 7

????IP: 192.168.244.144

????關(guān)閉 selinux 和防火墻

? ??# CentOS 7

????????$ setenforce 0? # 可以設(shè)置配置文件永久關(guān)閉

????????$ systemctl stop iptables.service

????????$ systemctl stop firewalld.service

????????# 修改字符集霞怀,否則可能報(bào) input/output error的問(wèn)題役耕,因?yàn)槿罩纠锎蛴×酥形?/p>

????????$ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

????????$ export LC_ALL=zh_CN.UTF-8

????????$ echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf

????# CentOS6

????????$ setenforce 0

????????$ service iptables stop????

????????# 修改字符集,否則可能報(bào) input/output error的問(wèn)題,因?yàn)槿罩纠锎蛴×酥形?/p>

????????$ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

????????$ export LC_ALL=zh_CN.UTF-8

????????$ echo 'LANG=zh_CN.UTF-8' > /etc/sysconfig/i18n

一. 準(zhǔn)備 Python3 和 Python 虛擬環(huán)境

1.1 安裝依賴包

? ??$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

????Yum 加速設(shè)置請(qǐng)參考 <http://mirrors.163.com/.help/centos.html>

1.2 編譯安裝

????$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

????$ tar xvf Python-3.6.1.tar.xz? && cd Python-3.6.1

????$ ./configure && make && make install

????# 這里必須執(zhí)行編譯安裝圆恤,否則在安裝 Python 庫(kù)依賴時(shí)會(huì)有麻煩...

1.3 建立 Python 虛擬環(huán)境

? ??因?yàn)?CentOS 6/7 自帶的是 Python2溶其,而 Yum 等工具依賴原來(lái)的 Python,為了不擾亂原來(lái)的環(huán)境我們來(lái)使用 Python 虛擬環(huán)境

? ??$ cd /opt

????$ python3 -m venv py3

????$ source /opt/py3/bin/activate

????# 看到下面的提示符代表成功逝慧,以后運(yùn)行 Jumpserver 都要先運(yùn)行以上 source 命令衬浑,以下所有命令均在該虛擬環(huán)境中運(yùn)行

????(py3) [root@localhost py3]

1.4 自動(dòng)載入 Python 虛擬環(huán)境配置

此項(xiàng)僅為懶癌晚期的人員使用捌浩,防止運(yùn)行 Jumpserver 時(shí)忘記載入 Python 虛擬環(huán)境導(dǎo)致程序無(wú)法運(yùn)行放刨。使用autoenv

????$ cd /opt

????$ git clone git://github.com/kennethreitz/autoenv.git

????$ echo 'source /opt/autoenv/activate.sh' >> ~/.bashrc

????$ source ~/.bashrc

二. 安裝 Jumpserver

2.1 下載或 Clone 項(xiàng)目

????項(xiàng)目提交較多 git clone 時(shí)較大工秩,你可以選擇去 Github 項(xiàng)目頁(yè)面直接下載zip包。

????$ cd /opt/

????$ git clone https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master

????$ echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env? # 進(jìn)入 jumpserver 目錄時(shí)將自動(dòng)載入 python 虛擬環(huán)境

????# 首次進(jìn)入 jumpserver 文件夾會(huì)有提示进统,按 y 即可

????# Are you sure you want to allow this? (y/N) y

2.2 安裝依賴 RPM 包

????$ cd /opt/jumpserver/requirements

????$ yum -y install $(cat rpm_requirements.txt)? # 如果沒(méi)有任何報(bào)錯(cuò)請(qǐng)繼續(xù)

2.3 安裝 Python 庫(kù)依賴

????$ pip install -r requirements.txt? # 不要指定-i參數(shù)助币,因?yàn)殓R像上可能沒(méi)有最新的包,如果沒(méi)有任何報(bào)錯(cuò)請(qǐng)繼續(xù)

????Pip 加速設(shè)置請(qǐng)參考 <https://segmentfault.com/a/1190000011875306>

2.4 安裝 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

????????$ yum -y install redis

????????$ systemctl start redis

????# centos6

????????$ service redis start

2.5 安裝 MySQL

本教程使用 Mysql 作為數(shù)據(jù)庫(kù)螟碎,如果不使用 Mysql 可以跳過(guò)相關(guān) Mysql 安裝和配置

# centos7

$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安裝的是mariadb

$ systemctl enable mariadb

$ systemctl start mariadb

# centos6$ yum -y install mysql mysql-devel mysql-server

$ chkconfig mysqld on

$ service mysqld start

2.6 創(chuàng)建數(shù)據(jù)庫(kù) Jumpserver 并授權(quán)

$ mysql

> create database jumpserver default charset 'utf8';

> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'somepassword';

> flush privileges;

2.7 修改 Jumpserver 配置文件

$ cd /opt/jumpserver

$ cp config_example.py config.py

$ vi config.py

# 注意對(duì)齊眉菱,不要直接復(fù)制本文檔的內(nèi)容

注意: 配置文件是 Python 格式,不要用 TAB掉分,而要用空格

2.8 生成數(shù)據(jù)庫(kù)表結(jié)構(gòu)和初始化數(shù)據(jù)

????$ cd /opt/jumpserver/utils

????$ bash make_migrations.sh

2.9 運(yùn)行 Jumpserver

????$ cd /opt/jumpserver

????$ ./jms start all? # 后臺(tái)運(yùn)行使用 -d 參數(shù)./jms start all -d

????# 新版本更新了運(yùn)行腳本俭缓,使用方式./jms start|stop|status|restart all? 后臺(tái)運(yùn)行請(qǐng)?zhí)砑?-d 參數(shù)

????運(yùn)行不報(bào)錯(cuò)克伊,請(qǐng)瀏覽器訪問(wèn)?http://192.168.244.144:8080/?

????默認(rèn)賬號(hào): admin 密碼: admin 頁(yè)面顯示不正常先不用處理,跟著教程繼續(xù)操作就行华坦,后面搭建 nginx 代理就可以正常訪問(wèn)了(此處頁(yè)面和服務(wù)還未完全搭建完成愿吹,暫時(shí)頁(yè)面無(wú)法訪問(wèn))

三. 安裝 SSH Server 和 WebSocket Server: Coco

3.1 下載或 Clone 項(xiàng)目

????新開(kāi)一個(gè)終端,連接測(cè)試機(jī)惜姐,別忘了 source /opt/py3/bin/activate

$ cd /opt

$ source /opt/py3/bin/activate

$ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master

$ echo "source /opt/py3/bin/activate" > /opt/coco/.env? # 進(jìn)入 coco 目錄時(shí)將自動(dòng)載入 python 虛擬環(huán)境

# 首次進(jìn)入 coco 文件夾會(huì)有提示犁跪,按 y 即可

# Are you sure you want to allow this? (y/N) y

3.2 安裝依賴

$ cd /opt/coco/requirements

$ yum -y? install $(cat rpm_requirements.txt)

$ pip install -r requirements.txt -i https://pypi.org/simple

3.3 修改配置文件并運(yùn)行

$ cd /opt/coco

$ cp conf_example.py conf.py? # 如果 coco 與 jumpserver 分開(kāi)部署,請(qǐng)手動(dòng)修改 conf.py

$ vi conf.py # 注意對(duì)齊歹袁,不要直接復(fù)制本文檔的內(nèi)容

注意: 配置文件是 Python 格式坷衍,不要用 TAB,而要用空格

????$ ./cocod start? # 后臺(tái)運(yùn)行使用 -d 參數(shù) ./cocod start -d

????# 新版本更新了運(yùn)行腳本条舔,使用方式./cocod start|stop|status|restart? 后臺(tái)運(yùn)行請(qǐng)?zhí)砑?-d 參數(shù)

????啟動(dòng)成功后去Jumpserver 會(huì)話管理-終端管理(http://192.168.244.144:8080/terminal/terminal/)接受coco的注冊(cè)枫耳,如果頁(yè)面不正常可以等部署完成后再處理(此處頁(yè)面和服務(wù)還未完全搭建完成孟抗,暫時(shí)頁(yè)面無(wú)法訪問(wèn))

四. 安裝 Web Terminal 前端: Luna

Luna 已改為純前端嘉涌,需要 Nginx 來(lái)運(yùn)行訪問(wèn)

訪問(wèn)(https://github.com/jumpserver/luna/releases)下載對(duì)應(yīng)版本的 release 包,直接解壓夸浅,不需要編譯

4.1 解壓 Luna

$ cd /opt

$ wget https://github.com/jumpserver/luna/releases/download/1.3.2/luna.tar.gz

$ tar xvf luna.tar.gz

$ chown -R root:root luna

五. 安裝 Windows 支持組件(如果不需要管理 windows 資產(chǎn)仑最,可以直接跳過(guò)這一步)

????因?yàn)槭謩?dòng)安裝 guacamole 組件比較復(fù)雜,這里提供打包好的 docker 使用, 啟動(dòng) guacamole

????5.1 Docker安裝 (僅針對(duì)CentOS7帆喇,CentOS6安裝Docker相對(duì)比較復(fù)雜)

????$ yum remove docker-latest-logrotate? docker-logrotate? docker-selinux dockdocker-engine$ yum install -y yum-utils? device-mapper-persistent-data? lvm2?

# 添加docker官方源

????$ yum-config-manager? ? --add-repo? ? https://download.docker.com/linux/centos/docker-ce.repo

????$ yum makecache fast

? ? $ yum install docker-ce????

# 國(guó)內(nèi)部分用戶可能無(wú)法連接docker官網(wǎng)提供的源警医,這里提供阿里云的鏡像節(jié)點(diǎn)供測(cè)試使用

????$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

????$ rpm --import http://mirrors.aliyun.com/docker-ce/linux/centos/gpg

????$ yum makecache fast

????$ yum -y install docker-ce


????$ systemctl start docker

????$ systemctl status docker

5.2 啟動(dòng) Guacamole

這里所需要注意的是 guacamole 暴露出來(lái)的端口是 8081,若與主機(jī)上其他端口沖突請(qǐng)自定義

修改下面 docker run 里的 JUMPSERVER_SERVER 參數(shù)坯钦,填上 Jumpserver 的 url 地址, 啟動(dòng)成功后去 Jumpserver 會(huì)話管理-終端管理(http://192.168.244.144:8080/terminal/terminal/)接受[Gua]開(kāi)頭的一個(gè)注冊(cè)预皇,如果頁(yè)面顯示不正常可以等部署完成后再處理

# 注意:這里需要修改下 http://<填寫jumpserver的url地址> 例: http://192.168.244.144, 否則會(huì)出錯(cuò), 帶寬有限, 下載時(shí)間可能有點(diǎn)長(zhǎng)婉刀,可以喝杯咖啡吟温,撩撩對(duì)面的妹子

$ docker run --name jms_guacamole -d \

? -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key \

? -e JUMPSERVER_KEY_DIR=/config/guacamole/key \

? -e JUMPSERVER_SERVER=http://<填寫jumpserver的url地址>:8080 \

? registry.jumpserver.org/public/guacamole:latest

六. 配置 Nginx 整合各組件

????6.1 安裝 Nginx 根據(jù)喜好選擇安裝方式和版本

????$ yum -y install nginx

????6.2 準(zhǔn)備配置文件 修改 /etc/nginx/nginx.conf

????內(nèi)容如下:

? ??$ vim /etc/nginx/nginx.conf

... 省略

# 把默認(rèn)server配置塊改成這樣

server {

? ? listen 80;? # 代理端口,以后將通過(guò)此端口進(jìn)行訪問(wèn)突颊,不再通過(guò)8080端口

? ? proxy_set_header X-Real-IP $remote_addr;

? ? proxy_set_header Host $host;

? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

? ? location /luna/ {

? ? ? ? try_files $uri / /index.html;

? ? ? ? alias /opt/luna/;

? ? }

? ? location /media/ {

? ? ? ? add_header Content-Encoding gzip;

? ? ? ? root /opt/jumpserver/data/;

? ? }

? ? location /static/ {

? ? ? ? root /opt/jumpserver/data/;

? ? }

? ? location /socket.io/ {

? ? ? ? proxy_pass? ? ? http://localhost:5000/socket.io/;? # 如果coco安裝在別的服務(wù)器鲁豪,請(qǐng)?zhí)顚懰膇p

? ? ? ? proxy_buffering off;

? ? ? ? proxy_http_version 1.1;

? ? ? ? proxy_set_header Upgrade $http_upgrade;

? ? ? ? proxy_set_header Connection "upgrade";

? ? }

? ? location /guacamole/ {

? ? ? ? proxy_pass? ? ? http://localhost:8081/;? # 如果guacamole安裝在別的服務(wù)器,請(qǐng)?zhí)顚懰膇p

? ? ? ? proxy_buffering off;

? ? ? ? proxy_http_version 1.1;

? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

? ? ? ? proxy_set_header Upgrade $http_upgrade;

? ? ? ? proxy_set_header Connection $http_connection;

? ? ? ? access_log off;

? ? ? ? client_max_body_size 100m;? # Windows 文件上傳大小限制

? ? }

? ? location / {

? ? ? ? proxy_pass http://localhost:8080;? # 如果jumpserver安裝在別的服務(wù)器律秃,請(qǐng)?zhí)顚懰膇p

? ? }

}

... 省略

6.3 運(yùn)行 Nginx

nginx -t? # 確保配置沒(méi)有問(wèn)題, 有問(wèn)題請(qǐng)先解決

# CentOS 7

????$ systemctl start nginx

????$ systemctl enable nginx ????

# CentOS 6

????$ service nginx start

????$ chkconfig nginx on

????6.4 開(kāi)始使用 Jumpserver ????檢查應(yīng)用是否已經(jīng)正常運(yùn)行

????$ cd /opt/jumpserver

????$ ./jms status? # 確定jumpserver已經(jīng)運(yùn)行爬橡,如果沒(méi)有運(yùn)行請(qǐng)重新啟動(dòng)jumpserver

????$ cd /opt/coco????

????$ ./cocod status? # 確定jumpserver已經(jīng)運(yùn)行,如果沒(méi)有運(yùn)行請(qǐng)重新啟動(dòng)coco

????# 如果安裝了 Guacamole

????$ docker ps? # 檢查容器是否已經(jīng)正常運(yùn)行棒动,如果沒(méi)有運(yùn)行請(qǐng)重新啟動(dòng)Guacamole

????服務(wù)全部啟動(dòng)后糙申,訪問(wèn)?http://192.168.244.144,訪問(wèn)nginx代理的端口船惨,不要再通過(guò)8080端口訪問(wèn)

????默認(rèn)賬號(hào): admin 密碼: admin

????如果部署過(guò)程中沒(méi)有接受應(yīng)用的注冊(cè)柜裸,需要到Jumpserver 會(huì)話管理-終端管理 接受 Coco Guacamole 等應(yīng)用的注冊(cè)缕陕。

** 測(cè)試連接**

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市疙挺,隨后出現(xiàn)的幾起案子榄檬,更是在濱河造成了極大的恐慌,老刑警劉巖衔统,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹿榜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡锦爵,警方通過(guò)查閱死者的電腦和手機(jī)舱殿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門隔节,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)豌鹤,“玉大人,你說(shuō)我怎么就攤上這事妒御≌燎猓” “怎么了冈绊?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)埠啃。 經(jīng)常有香客問(wèn)我死宣,道長(zhǎng),這世上最難降的妖魔是什么碴开? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任毅该,我火速辦了婚禮,結(jié)果婚禮上潦牛,老公的妹妹穿的比我還像新娘眶掌。我一直安慰自己,他們只是感情好巴碗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布朴爬。 她就那樣靜靜地躺著,像睡著了一般橡淆。 火紅的嫁衣襯著肌膚如雪召噩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天明垢,我揣著相機(jī)與錄音蚣常,去河邊找鬼市咽。 笑死痊银,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的施绎。 我是一名探鬼主播溯革,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贞绳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了致稀?” 一聲冷哼從身側(cè)響起冈闭,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抖单,沒(méi)想到半個(gè)月后萎攒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矛绘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年耍休,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片货矮。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羊精,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出囚玫,到底是詐尸還是另有隱情喧锦,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布抓督,位于F島的核電站燃少,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏铃在。R本人自食惡果不足惜供汛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涌穆。 院中可真熱鬧怔昨,春花似錦、人聲如沸宿稀。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祝沸。三九已至矮烹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間罩锐,已是汗流浹背奉狈。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涩惑,地道東北人仁期。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親跛蛋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子熬的,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容