CentOS7搭建jumpserver

一强法、安裝mysql5.7

1.下載mysql5.7包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
 
2.安裝MySQL源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

3.安裝MySQL
yum install mysql-server mysql-client -y

4.配置mysql基礎(chǔ)配置創(chuàng)建jumpserver庫和賬號(hào)
vim /etc/my.cnf
# 添加取消dns解析
skip-name-resolve

進(jìn)入mysql數(shù)據(jù)庫創(chuàng)建庫及賬號(hào)并授權(quán)

# 查看初始密碼
cat /var/log/mysqld.log | grep "generated for root@localhost:" | awk '{print $NF}'
mysql -uroot -p<初始密碼>
# 修改默認(rèn)密碼
 
# 因?yàn)镸ySQL的密碼規(guī)則需要很復(fù)雜万俗,我們一般自己設(shè)置的不會(huì)設(shè)置成這樣,所以我們?nèi)中薷囊幌?mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

#這時(shí)候我們就可以自己設(shè)置想要的密碼了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
# 創(chuàng)建jumpserver庫和賬號(hào)
create database jumpserver default charset 'utf8'; 
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver'; 
flush privileges;

二饮怯、安裝redis闰歪、python3

yum install python3 python3-devel redis -y
systemctl enable redis
cd /opt
# 創(chuàng)建虛擬環(huán)境
python3.6 -m venv /opt/py3
# 激活虛擬環(huán)境
source /opt/py3/bin/activate

# 設(shè)置pip阿里源并升級(jí)pip
mkdir ~/.pip
cat >~/.pip/pip.conf <<EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com
EOF
pip install --upgrade pip

# 配置redis配置文件設(shè)置密碼
/etc/redis.conf第480行
...
requirepass Ediapofe893safe
...
systemctl restart redis

三、安裝docker

阿里云docker安裝教程

yum install -y yum-utils device-mapper-persistent-data lvm2;
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo;
yum makecache fast;
yum -y install docker-ce;
service docker start
systemctl enable docker
# 將jumpserver得koko組件和Guacamole組件鏡像pull下來
docker pull jumpserver/jms_guacamole:2.0.2
docker pull  jumpserver/jms_koko:2.0.2

四蓖墅、安裝nginx

yum install yum-utils
# 設(shè)置nginx源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

#安裝nginx
 yum install nginx -y

五库倘、下載jumpserver和Lina、Luna組件

wget https://github.com/jumpserver/jumpserver/releases/download/v2.0.2/jumpserver-v2.0.2.tar.gz
wget -O /opt/lina-v2.0.2.tar.gz https://github.com/jumpserver/lina/releases/download/v2.0.2/lina-v2.0.2.tar.gz
wget -O /opt/luna-v2.0.2.tar.gzhttps://github.com/jumpserver/luna/releases/download/v2.0.2/luna-v2.0.2.tar.gz

六论矾、開始部署jumpserver

# 解壓壓縮包
tar -xf jumpserver-v2.0.2.tar.gz
tar -xf luna-v2.0.2.tar.gz
tar -xf lina-v2.0.2.tar.gz
mv jumpserver-v2.0.2 jumpserver

mv lina-v2.0.2 lina
chown -R nginx:nginx lina

mv luna-v2.0.2 luna
chown -R nginx:nginx luna

# 安裝jumpserver相關(guān)依賴包
yum install -y $(cat /opt/jumpserver/requirements/rpm_requirements.txt)
pip install wheel && pip install -r /opt/jumpserver/requirements/requirements.txt

# 隨機(jī)生成2段字符
# 給jumpserver配置文件的SECRET_KEY: 
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo;echo
oaR4OWw1yjdlTJBb4mMWuHoRurV1cZ84pZzrKBUSpNw02uwB2

# 給jump server配置文件的BOOTSTRAP_TOKEN: 
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24;echo;echo
OmSmja8dSIg5Sk9vM4WAAaGO
配置文件參考
# SECURITY WARNING: keep the secret key used in production secret!
# 加密秘鑰 生產(chǎn)環(huán)境中請修改為隨機(jī)字符串教翩,請勿外泄, 可使用命令生成
# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
SECRET_KEY: oaR4OWw1yjdlTJBb4mMWuHoRurV1cZ84pZzrKBUSpNw02uwB2

# SECURITY WARNING: keep the bootstrap token used in production secret!
# 預(yù)共享Token coco和guacamole用來注冊服務(wù)賬號(hào),不在使用原來的注冊接受機(jī)制
BOOTSTRAP_TOKEN: OmSmja8dSIg5Sk9vM4WAAaGO

# Development env open this, when error occur display the full process track, Production disable it
# DEBUG 模式 開啟DEBUG后遇到錯(cuò)誤時(shí)可以看到更多日志
DEBUG: false

# DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
# 日志級(jí)別
LOG_LEVEL: ERROR
# LOG_DIR:

# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 瀏覽器Session過期時(shí)間贪壳,默認(rèn)24小時(shí), 也可以設(shè)置瀏覽器關(guān)閉則過期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true

# MySQL or postgres setting like:
# 使用Mysql作為數(shù)據(jù)庫
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: jumpserver
DB_NAME: jumpserver

# 運(yùn)行時(shí)綁定端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070

# Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: Ediapofe893safe   # redis的密碼
# REDIS_DB_CELERY: 3
# REDIS_DB_CACHE: 4

# Windows 登錄跳過手動(dòng)輸入密碼
WINDOWS_SKIP_ALL_MANUAL_PASSWORD: True
啟動(dòng)jumpserver
cd /opt/jumpserver
./jms start -d
開啟剛剛下載的兩個(gè)jumpserver的docker組件
# 接口ens192名稱根據(jù)實(shí)際輸入
localip=$(ip add show ens192 | grep inet | grep -v inet6 | awk '{print $2}' | awk -F'/' '{print $1}')
BOOTSTRAP_TOKEN="OmSmja8dSIg5Sk9vM4WAAaGO"
docker run --name jms_koko -d \
  -p 2222:2222 \
  -p 127.0.0.1:5000:5000 \
  -e CORE_HOST=http://${localip}:8080 \
  -e BOOTSTRAP_TOKEN=${BOOTSTRAP_TOKEN} \
  -e LOG_LEVEL=ERROR \
  --restart=always \
  jumpserver/jms_koko:2.0.2

docker run --name jms_guacamole -d \
  -p 127.0.0.1:8081:8080 \
  -e JUMPSERVER_SERVER=http://${localip}:8080 \
  -e BOOTSTRAP_TOKEN=${BOOTSTRAP_TOKEN} \
  -e GUACAMOLE_LOG_LEVEL=ERROR \
  jumpserver/jms_guacamole:2.0.2

配置nginx

echo > /etc/nginx/conf.d/default.conf
vi /etc/nginx/conf.d/jumpserver.conf
server {
    listen 80;

    client_max_body_size 100m;  # 錄像及文件上傳大小限制

    location /ui/ {
        try_files $uri / /index.html;
        alias /opt/lina/;
    }

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;  # luna 路徑, 如果修改安裝目錄, 此處需要修改
    }

    location /media/ {
        add_header Content-Encoding gzip;
        root /opt/jumpserver/data/;  # 錄像位置, 如果修改安裝目錄, 此處需要修改
    }

    location /static/ {
        root /opt/jumpserver/data/;  # 靜態(tài)資源, 如果修改安裝目錄, 此處需要修改
    }

    location /koko/ {
        proxy_pass       http://localhost:5000;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /guacamole/ {
        proxy_pass       http://localhost:8081/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /ws/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8070;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /api/ {
        proxy_pass http://localhost: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 /core/ {
        proxy_pass http://localhost: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 / {
        rewrite ^/(.*)$ /ui/$1 last;
    }
}

nginx -t 
nginx -reload

最后關(guān)閉seliunx和防火墻

# 永久關(guān)閉selinux去修改配置文件即可饱亿,這里不做演示
setenforce 0

systemctl stop firewalld
systemctl disable firewalld
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市寥袭,隨后出現(xiàn)的幾起案子路捧,更是在濱河造成了極大的恐慌,老刑警劉巖传黄,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異队寇,居然都是意外死亡膘掰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門佳遣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來识埋,“玉大人,你說我怎么就攤上這事零渐≈现郏” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵诵盼,是天一觀的道長惠豺。 經(jīng)常有香客問我,道長风宁,這世上最難降的妖魔是什么洁墙? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮戒财,結(jié)果婚禮上热监,老公的妹妹穿的比我還像新娘。我一直安慰自己饮寞,他們只是感情好孝扛,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布列吼。 她就那樣靜靜地躺著,像睡著了一般苦始。 火紅的嫁衣襯著肌膚如雪冈欢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天盈简,我揣著相機(jī)與錄音凑耻,去河邊找鬼。 笑死柠贤,一個(gè)胖子當(dāng)著我的面吹牛香浩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臼勉,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼邻吭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宴霸?” 一聲冷哼從身側(cè)響起囱晴,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓢谢,沒想到半個(gè)月后畸写,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氓扛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年枯芬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片采郎。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡千所,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒜埋,到底是詐尸還是另有隱情淫痰,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布整份,位于F島的核電站待错,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏皂林。R本人自食惡果不足惜朗鸠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望础倍。 院中可真熱鬧烛占,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芽卿,卻和暖如春揭芍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卸例。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工称杨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人筷转。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓姑原,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呜舒。 傳聞我的和親對象是個(gè)殘疾皇子锭汛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359