23.5 jumpserver介紹python
23.6 安裝jumpservermysql
23.7 登陸jumpserverlinux
23.8 建立管理用戶git
擴展:github
jumpserver安裝問題 web
http://ask.apelearn.com/question/17502sql
23.5 jumpserver介紹docker
1.官網www.jumpserver.orgshell
2.Jumpserver是一款使用Python, Django開發的開源跳板機系統, 助力互聯網企業高效 用戶、資產、權限、審計 管理數據庫
#jumpserver很是適合運維人員,不論是二次開發。
#國人開發,開源
3.Auth 統一認證
4.CMDB 資產管理
5.統一受權
6.日誌審計
7.自動化運維(ansible)
8.最新版v0.4.0,基於python3.6, django 1.11,目前還未開發完成,因此咱們接下來將要安裝v0.3.2
#若是直接在centos6或7上直接安裝最新版,會有一些問題。下一節會講怎麼安裝
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23.6 安裝jumpserver
Jumpserver安裝(0.4.0)
#由於使用了(docker還未學習)並0.4版本還未徹底開發,因此主要學習0.32版本
yum install -y docker //首先安裝docker
systemctl enable docker
systemctl start docker //啓動docker服務
curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose //安裝docker-compose
chmod 755 /usr/local/bin/docker-compose
git clone https://github.com/jumpserver/jumpserver.git //下載jumpserver源碼
cd jumpserver
配置docker加速器 http://ask.apelearn.com/question/15126
檢查是否有監聽8080端口的服務,若是有關閉
screen//進入到一個虛擬終端
docker-compose up //使用docker-compose安裝jumpserver
Jumpserver安裝(0.3.2)
#不須要安裝(藉助於)docker
1.官方文檔https://github.com/jumpserver/jumpserver/wiki/v0.3.2-%E5%9F%BA%E4%BA%8E-RedHat-%E7%9A%84%E7%B3%BB%E7%BB%9F
2.yum install -y git
3.cd /home //要到一個空間大的目錄下面
#jumpserver會佔用必定的空間
4.git clone https://github.com/jumpserver/jumpserver.git
#地址爲github官方的jumpserver的地址
5.git checkout master
6.cd jumpserver/install
7.python install.py
若你的機器已經安裝過mysql,能夠先建立jumpserver庫以及對應的用戶名密碼,若沒有安裝就讓它自動安裝便可
安裝過程當中還須要設置一下使用的第三方郵件,建議你去申請一個免費的163郵箱
個人163郵箱smtp.163.com aming_test@163.com 8lFjprwrfEv1c
實例:(0.32版本)
首先要把不須要的服務停掉
[root@axinlinux-01 ~]# systemctl stop mongdod
[root@axinlinux-01 ~]# systemctl disable mongod
gitlab也須要關閉
[root@axinlinux-01 ~]# yum install git #若是下載的時候比較慢,能夠將不相關的repo文件停掉
[root@axinlinux-01 ~]# cd /etc/yum.repos.d/ #怎麼停掉呢?cd到/etc/yum.repos.d目錄下
[root@axinlinux-01 yum.repos.d]# ls #將不相關的repo文件停掉。就是改個名字
CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo mongo.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo gitlab_gitlab-ce.repo zabbix.repo
[root@axinlinux-01 yum.repos.d]# mv gitlab_gitlab-ce.repo gitlab_gitlab-ce.repo.bak #這樣將不相關的停掉
[root@axinlinux-01 yum.repos.d]# mv mongo.repo mongo.repo.bak
[root@axinlinux-01 yum.repos.d]# mv zabbix.repo zabbix.repo.bak
如下操做是解決一系列問題以後的步驟:
1.cd /opt #建議不要到root或home下,容易出問題
2.https://github.com/jumpserver/jumpserver/tree/0.3.3 到這個地址下,下載zip。由於克隆的話出問題克隆不下來
3.unzip jumpserver-0.3.3.zip #而後解壓這個zip
4.cd jumpserver-0.3.3 #cd 進去
5.cd install/ #再cd到install目錄下
6.python install.py #執行install.py
注意:
1. 安裝過程當中要求輸入數據庫密碼時,直接回車就行 2. 完成安裝後,請訪問web,繼續查看後續文檔 3. 若是啓動失敗,請返回上層目錄,手動運行./service.sh restart啓動 4. 默認帳號密碼 admin 5Lov@wife
請輸入您服務器的IP地址,用戶瀏覽器能夠訪問 [192.168.208.136]: #回車
是否安裝新的MySQL服務器? (y/n) [y]: n #由於以前就安裝了mysql,因此就不在安裝了
請輸入數據庫服務器IP [127.0.0.1]: #回車
請輸入數據庫服務器端口 [3306]: #回車
請輸入數據庫服務器用戶 [jumpserver]: #此時能夠在開一個終端,來建立以及受權(點擊xshell標籤右鍵>複製ssh渠道。
問題點:可是,阿鑫在作的時候,到下面管理員那一步驟的時候報錯了,報錯信息以下:
django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE6\\x9C\\xBA\\xE6\\x88\\xBF' for column 'name' at row 1")
問題根源:網上查找同類問題,應該是mysql數據編碼的問題,django鏈接的數據庫編碼字符集要求utf8,否則報錯
解決方法的鏈接:https://cloud.tencent.com/developer/article/1139768
解決方法:
打開mysql數據庫的配置文件
[[email protected] ~]# vim /etc/my.cnf [mysqld] #在mysqld模塊下增長如下兩個參數 character_set_server=utf8 init_connect='SET NAMES utf8'
[root@localhost ~]# /etc/init.d/mysqld restart
注意:新版MySQL(如:5.5)或MariaDB等,mysqld啓動時可能會遇到「[ERROR] /usr/libexec/mysqld: unknown variable ‘default_character_set=utf8’」的錯誤;就應該在[mysqld]中用 character_set_server=utf8 替換掉 default_character_set=utf8
2.刪除原來建立的jumpsrvice問題數據庫
create database jumpserver;
3.再打開mysql數據庫建立django鏈接的數據庫
[root@localhost ~]# mysql -uxxxx -pxxxxxx mysql> show variables like'character%'; //運行這語句查看一下character_set_database參數是否utf8 mysql> set character_set_database=utf8; //若是不是utf8,運行此語句設置一下 +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/charsets/ | +--------------------------+----------------------------------+ mysql> create database jumpservice; //以後就能夠正常建立jumpservice數據庫了
mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123';
4.[[email protected] install]# python install.py //從新執行命令便可安裝成功
另一種狀況,也許是用戶名或者庫受權有問題,建議刪除jumpserver庫,從新創建一個新的並受權。
> create database jumpserver; > grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'asd9577';
請輸入數據庫服務器密碼: jump123jump
請輸入使用的數據庫 [jumpserver]:
鏈接數據庫成功
請輸入SMTP地址: smtp.163.com
請輸入SMTP端口 [25]:
請輸入帳戶: wangxinlinux@163.com
請輸入密碼: wangxin789
(535, 'Error: authentication failed')
是否跳過(y/n) [n]? : y
請登錄郵箱查收郵件, 而後確認是否繼續安裝
是否繼續? (y/n) [y]: y
請輸入管理員用戶名 [admin]: #回車
請輸入管理員密碼: [5Lov@wife]: #回車
請再次輸入管理員密碼: [5Lov@wife]: #回車
Starting jumpserver service: [ 肯定 ]
安裝成功,Web登陸請訪問http://ip:8000, 祝你使用愉快。
請訪問 https://github.com/jumpserver/jumpserver/wiki 查看文檔
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23.7 登陸jumpserver
Jumpserver使用
1.瀏覽器輸入ip:8000 訪問jumpserver
2.默認用戶名是admin,密碼是5Lov@wife
3.點擊用戶管理,選擇用戶,點擊Administrator那一行右側的更新,設置密碼
建立用戶組 運維
建立用戶 aming
點擊設置,默認管理用戶,該用戶爲管理員用戶,應該有sudo權限,須要在每一臺客戶機上建立該用戶(用戶名自定義,jump)
在一臺linux機器上生成一個密鑰對,用來做爲該管理用戶的密鑰對
把私鑰粘貼到默認密鑰下面
實例:
以上:
資產管理::也就是cmdb了。以前說到jumpserver有cmdb的功能。就在這來體現
資產組:好比開發的資產組、測試的資產組、線上的資產組等等
產看資產:資產組裏對應的機器,不只僅有服務器,還有交換機、路由器等等,均可以列到這裏面來
查看機房:利用機房去劃分
以上:
受權管理:系統用戶:系統用戶就是咱們要設置一個跳板機,跳板機要登陸到遠程服務器上去,咱們把它叫作客戶機。那客戶機要登陸,你首先要有一個用戶。這個用戶就是系統用戶
jumpserver裏面有三種用戶:第一種就是登陸jumpserver的用戶
第二種就是登陸客戶機的用戶。也就是上面說的系統用戶
第三種在設置裏,裏有一個默認管理用戶。咱們要想實現自動化,想批量的到客戶機上去執行一些命令,那就要有一個用戶去執行。好比我要給客戶機建立一個系統用戶,也要有一個有權限的管理員用戶去作呀。這個用戶就叫作管理用戶。這個用戶平時不用,管理機器的時候纔會用。你想一想jumpserver要想跟你的機器去通訊,作一些事情,那確定要有一個有權限的用戶才行,也是在客戶機上建立的,可是要在jumpserver裏面去配置一下,好比密鑰
受權管理:受權規則:就是那些用戶有權限連,哪一組機器或者哪一些機器。去給他劃分好嚴格的權限。好比運維組的能夠去連全部的機器。那數據中心的只有數據中心的幾臺機器,其餘的不給權限
以上
日誌審計:就是好比我看看你的額登陸歷史,都有誰登陸過。還有執行過的批量命令,上傳下載的東西。命令裏有一個命令回放的功能
以上
上傳下載:上傳和下載文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23.8 建立管理用戶
在客戶機上建立jump用戶,並設置sudo權限,把剛剛生成的密鑰對裏面的公鑰放到該客戶機的jump用戶家目錄.ssh/authorized_keys文件裏
資產管理,查看資產組,添加資產組(如,dev)
資產管理,查看資產,添加資產,填寫各項信息
受權管理,系統用戶,添加系統用戶,該用戶爲咱們登陸全部客戶機的用戶
受權規則,添加規則,建立受權規則
管理用戶須要到每一臺客戶機上去建立,並且也要在jumpserver服務端(界面)設置好這個用戶,叫什麼,以及對應的密鑰(界面上指的是私鑰)
若是咱們要密鑰登陸一臺機器的話,本機要有一個私鑰,對方要有一個公鑰。
[root@axinlinux-04 ~]# cd .ssh/ #在本機去生成一個密鑰對
[root@axinlinux-04 .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
[root@axinlinux-04 .ssh]# ssh-keygen -f jump #-f指定密鑰對的名字
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): #回車
Enter same passphrase again: #回車
Your identification has been saved in jump.
Your public key has been saved in jump.pub.
The key fingerprint is:
SHA256:zwzE4unsryGYSGNjjSfc206E0rdU1lCkrlPxQfm7trM root@axinlinux-04
The key's randomart image is:
+---[RSA 2048]----+
| .o+. |
| .=. |
| .=oo. |
|. = ..++o .. |
| @ * +ooS. . |
|+.*o*o+ = . |
|. o..*+ + . |
| oo.. + |
| .oo. .E+ |
+----[SHA256]-----+
[root@axinlinux-04 .ssh]# ls
authorized_keys id_rsa id_rsa.pub jump jump.pub known_hosts #會有兩個文件 jump jump.pub
[root@axinlinux-04 .ssh]# cat jump #須要的是jump(私鑰),把它粘貼要界面下位置
管理用戶是指客戶端上的如root等高權限帳號(或擁有NOPASSWD: ALL sudo權限),用來推送新建系統用戶。至關於說這個管理用戶能夠作各類各樣的操做
接下來,咱們到對應的客戶機上去建立這個用戶(jump管理用戶)
[root@dazuoye02-01 ~]# useradd jump #在這臺客戶機上,建立jump用戶,這個用戶做爲管理帳戶。之後每增長一臺機器都要增長這個用戶
[root@dazuoye02-01 ~]# su - jump #接下來切換到jump用戶
[jump@dazuoye02-01 ~]$ mkdir .ssh #建立authorized_keys
[jump@dazuoye02-01 ~]$ vim .ssh/authorized_keys #服務端linux上生成的公鑰(jump.pub)粘貼到這個文件裏來
[root@axinlinux-04 .ssh]# cat jump.pub #將服務端linux上剛纔生成的這個公鑰粘貼到上面那個文件裏
[jump@dazuoye02-01 ~]$ chmod 700 .ssh/ #修改目錄的權限爲700
[jump@dazuoye02-01 ~]$ chmod 400 .ssh/authorized_keys #修改文件的權限400
檢查selinux和iptables
[root@axinlinux-04 .ssh]# ssh -i jump jump@192.168.208.135 #使用ssh -i來指定使用jump祕鑰來登陸客戶機
The authenticity of host '192.168.208.135 (192.168.208.135)' can't be established.
ECDSA key fingerprint is SHA256:ipSyrFLdSRyMxARq/E/2S09fJSD9dz+R/eSm/baC434.
ECDSA key fingerprint is MD5:60:35:cf:94:59:97:4e:05:ec:3b:ee:25:e3:d6:e2:ea.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.208.135' (ECDSA) to the list of known hosts.
Last login: Sat Dec 1 00:00:16 2018
[jump@dazuoye02-01 ~]$