==>>點擊查看本系列文章目錄
目錄
1.Centos7操作系統
2.Gnome 可視化桌面
3.遠程shell工具
4.遠程桌面工具
5.Jdk
6..Net Core
7.Git
8.Docker 容器
9.Kubernetes 自動化部署
10.Jenkins 持續集成
11.VSCode
總結
1.Centos7操作系統
1.1 雜談
本教程基於linux系統,我安裝的是Centos 7,在VMware虛擬機中運行。
1. 關於虛擬機平台:Hype-V 與 VMware
普遍最常用的是VMware,后來我在本地計算機中安裝Docker(一種容器)之后,win10系統便自動開啟了 Hype-V,它與VMware競爭關系,開啟后便不能啟動VMware。
於是我上手開始用Hype-V搭建虛擬機,安裝Centos 7比較順利,但是網絡調試和可視化桌面遇到了問題。
先簡單演示一下 win10 開啟 Hype-V 的方式,直接上圖:
先談網絡:
VMware 支持 NAT (VMnet8) 、 Bridge(VMnet0) 、 Host-Only(VMnet1)
NAT 最簡單,他是由本地計算機分配的網絡,共享同一個IP。
Bridge 是直接訪問硬件網卡,簡單說就是虛擬機走獨立的網絡。
最直觀的表現就是,如果你們公司上網需要到瀏覽器登錄一下獲取動態分配的ip的話,那如果你用bridge時,你同樣也需要在瀏覽器里面用賬號登錄一次,分配另一個IP,NAT則不需要。
這樣就遇到了一個問題,bridge方式聯網的時候你需要有可視化桌面,有瀏覽器,你才能上網。(當然你如果會直接使用shell模擬瀏覽器登錄獲取ip的話那你也可以上網)
而 Hype-V 與 VMware 不同,不可選聯網方式,只可以選要使用的網卡。我選擇網卡以后,發現它只有內網ip,不能訪問外網,顯然就是bridge的聯網方式。但是我們公司必須使用瀏覽器上網,於是我開啟了安裝可視化桌面之路。下文將會介紹(安裝GNome)。當我安裝完以后,發現Hype-V虛擬機桌面無法進入。多次嘗試仍然無效。於是我放棄了Hype-V, 關閉該功能,使用VMware 虛擬機。
所以我最終的選擇是VMware虛擬機。
2. 關於操作系統
之前聽說Centos是最穩定的Linux系統,與RedHat最接近,簡單說就是RedHat的免費版,而RedHat是提供商業支持的系統。
Centos6.5 和 Centos7 等差別比較大。我選擇了后者。
1.2 上手
上面我已經提到了因為Hype-V的一些坑,我選擇了 VMware。相信大家對它也比較熟悉。以下簡單介紹。
上圖中展示了我虛擬機的配置。有一些點需要注意一下:
光驅鏡像: 網上下載系統iso鏡像,然后裝載到虛擬機。
硬盤:這個比較重要,通常來說5G肯定是不夠的,而且linux擴展硬盤比較復雜,如果你安裝完系統以后再擴容需要做大量的設置,所以我建議剛開始就將硬盤做大一點,后期如果不夠用的話再擴容,而不是剛裝完系統你就要擴容。擴容中的坑,我后續會補充。
網絡: 我上面已經講到了,NAT較為簡單,我選擇了NAT。下面我談一下網絡的配置。
那么為什么網關ip配置成 192.168.23.2 呢,請打開本地計算機的網絡共享中心,入下圖。
通俗解釋就是,VMware軟件自動建造了一個虛擬網卡,連到這個網卡上的計算機都在一個子網(192.168.23.0)中。其中192.168.23.1 被你自己的硬件計算機用了,192.168.23.2是網關,其它的是給你的虛擬機用的。
如果你不相信,請你打開CMD 窗口,輸入 ipconfig。如下圖,
在談一談 DHCP ,如下圖,一旦你給dhcp打鈎以后你就不需要給虛擬機設置ip地址了,這個DHCP就幫你完成了。你同時可以設置分配的ip的區間段,如圖:
NAT 設置完成,接下來我們擴展一下,看一看如果選擇另外兩種上網方式:
Host- only (僅主機):
你剛剛應該已經發現了,這里還有一個網絡,192.168.80.0 子網,這正是“僅主機模式”,你會發現用這種網絡的話你的虛擬機只能ping同你的計算機,而不能上外網,不能ping通公司內其他同事的電腦,這就是“僅主機”,你還需要別的網絡共享的方式才能上網。
Bridge(橋接):
這里什么都不需要你配置 ,你只需要選擇一個能用的網卡,這里面有很多虛擬網卡是不能用的,可能是你安裝別的軟件的時候自動建出來的。選完以后,你的虛擬機和你的電腦就是獨立開了,虛擬機的ip是由你家里的路由器或者你們公司的dhcp來分配的,與你的電腦就無關了,你的電腦僅僅是為它提供了一張網卡。
還要在說一下,這個虛擬網絡編輯器的窗口僅僅是用來設置網絡的。最終你的虛擬機要選擇哪一種方式,需要你到“虛擬機設置”中選擇,就和你選擇多大內存一樣簡單。So easy 是不是!
接下來就是安裝操作系統了。你要認得 “install” 這個單詞是“安裝”的意思就好辦了。我就不介紹了,總之就是很簡單了。
分區的時候默認分區就好了,過程中你設置一下root密碼,然后可以在建一個別的賬號。
你最好是連同可視化桌面一起安裝,如果你沒有安卓桌面的話,我接下來將介紹如何安裝(前提是你的網絡是通的,ping www.baidu.com)
如果你的網絡還是不通的話,可能虛擬要你在安裝好的linux 中配置一下網卡了。請自行百度,或者評論留言。下圖是我網卡的配置:
用 “ifconfig” 或者 “ip addr” 可以查看ip地址
檢查網絡沒問題:
可視化桌面也可以這樣查看ip:
2.Gnome 可視化桌面
2.1 雜談
談一下為什么要安裝可視化桌面呢?
第一,用慣了windows系統,還是希望出差錯的時候也能點一下鼠標的,雖然這個桌面要消耗我將近一個多G的硬盤空間。
第二,下載東西方便一點,可以進瀏覽器里面下載一些安裝包,雖然我們大多數情況都是用yum直接安裝的。
第三,我打算試試linux編程,安裝 VS Code,上手在linux中加斷點調試代碼,自然只用命令行是不行的,雖然后來我也放棄了這種方式,我還是覺得VS Stutio要好用的多,不過我還是要演示一下我的踩坑過程。
2.1 上手
更新grub2,是因為我在后來安裝Gnome的時候遇到了與grub2 “沖突” 的坑,所以我建議你提前就更新一下。
yum update grub2-common
安裝,每次它提示是否確認下載,確認安裝的時候,都輸入 “y”
yum groupinstall "X Window System" yum groupinstall "GNOME Desktop"
檢查默認啟動方式,get:
systemctl get-default
返回結果一定不是 graphical.target,那就設置一下咯。set:
systemctl set-default graphical.target
我個人認為這個比較容易,遇到坑的話可以找一下更為詳細的教程,就可以完成。
然后重啟虛擬機
reboot
3.遠程shell工具
這個工具是安裝在你的windows本地計算機上的
安裝目的: 如果你的linux服務器不是你本地的虛擬機,而是機房服務器或者雲服務器的話,那你是不能通過VMWare來操作它的。只能用遠程來操作。
工具重量很多,我介紹一個我常用的:SecureCRT
SecureFX 工具可以傳輸文件,通常和SecureCRT集成。這倆如果沒有集成的話,需要你單獨下載。
4.遠程桌面工具
4.1 linux上安裝 VNC-Server
安裝
yum -y install tigervnc-server
配置
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
設置VNC密碼
vncpasswd
重啟systemd
systemctl daemon-reload
設置永久開啟VNC服務
systemctl enable vncserver@:1.service
啟動VNC服務
systemctl start vncserver@:1.service
如遇報錯:
Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.
編輯/etc/systemd/system/vncserver@:1.service配置文件:
將Type=forking改為Type=simple
重新啟動VNC服務
systemctl restart vncserver@:1.service
查看VNC服務狀態
systemctl status vncserver@:1.service
如有Activie:failed則表示啟動失敗
編輯配置文件:
vim /etc/systemd/system/vncserver@:1.service
將里面所有的<USER>替換為當前用戶名(大致有兩處),如root;另,如果是root用戶,應將PIDFile的/home/root改為/root
重新啟動VNC服務
這里可能會遇到錯誤,當執行start vncserver@:1.service時可能提示如下錯誤。
Job for vncserver@:1.service failed because the control process exited with error code. See
"systemctl status vncserver@:1.service" and "journalctl -xe" for details.
解決辦法
刪除/tmp/.X11-unix/ 目錄
rm -rf /tmp/.X11-unix/
再啟用一次即可
systemctl restart vncserver@:1.service
開啟防火牆5901端口,重啟防火牆服務
firewall-cmd --zone=public --add-port=5901/tcp --permanent systemctl restart firewalld.service
查看端口狀態
netstat -lntp netstat -lnp|grep 5901
4.2 本地計算機安裝客戶端 VNC-Viewer
下載地址: http://download.canadiancontent.net/VNC_Viewer.html
下載以后可以直接運行,無需安裝
當它提示需要你輸入密碼的時候,輸入你剛剛在 VNC-Server 中設置的密碼即可。
登錄系統,完成。
5.Jdk
為什么要安裝Jdk呢,我們不是要做.net開發嗎,那是因為我們接下來要用的Jenkins是需要運行在java環境下,我不確定只安裝jrm是否可行,所以直接安裝了jdk
網絡上安裝教程比較多,推薦: https://www.cnblogs.com/sxdcgaq8080/p/7492426.html
我安裝了最新的版本 jdk12, 但是后來安裝Jenkins的時候發現不支持jdk12,因為版本太高了,我老老實實重新安裝了jdk8
需要測試一下java環境是否可用:
java -version
同時要創建軟鏈接
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
6..Net Core
6.1 安裝.netCore
官方鏈接: https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current
記得選擇你的操作系統,我選的是CentOS
獲取包
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
升級更新已安裝的包,並安裝.netcore
sudo yum update sudo yum install dotnet-sdk-2.2
6.2 安裝nodejs
由於需要做web開發,所以我打算提前安裝 nodejs
首先下載安裝包
我用windows瀏覽器訪問的時候沒有找到如何下載linux安裝包,於是我用linux瀏覽器訪問,找到了,如下圖。當然你也可以直接用 wget 命令下載。
下載推薦版本,而非最新版本,你懂得。
下載完成后綴是 .tar.xz, 用下面的方式解壓,據說,使用這種壓縮方式的原因是壓縮后文件更小。
xz -d node-v10.16.0-linux-x64.tar.xz tar -xvf node-v10.16.0-linux-x64.tar
創建映射軟鏈接/usr/bin 指向 解壓文件夾,指令:
ln -s /usr/local/src/node-v10.16.0-linux-x64/bin/node /usr/bin/node ln -s /usr/local/src/node-v10.16.0-linux-x64/bin/npm /usr/bin/npm
檢查安裝狀態
node -v
npm
7.Git
$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ yum -y install git-core $ git --version git version 1.7.1
8.Docker 容器
移除舊的版本:
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
安裝一些必要的系統工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加軟件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 緩存:
sudo yum makecache fast
安裝 Docker-ce:
sudo yum -y install docker-ce
啟動 Docker 后台服務
sudo systemctl start docker
測試運行 hello-world
docker run hello-world
9.Kubernetes 自動化部署
這一節,我目前就先不寫了,因為目前還用不到分布式,當我再今后的文章中用到分布式的時候一定會來修補的。畢竟我是完美主義,用盡所有的工具讓開發運維簡單化。
好吧,我承認,我以前也沒有用過這個東西,但是我目前不想學了,等我用到的時候一定會來學的。
10.Jenkins 持續集成
安裝
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install jenkins
配置
vim /etc/sysconfig/jenkins
#監聽端口
JENKINS_PORT="8080"
#修改配置
JENKINS_USER="root"
修改目錄權限
chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins
重啟
service jenkins restart ps -ef | grep jenkins
啟動
systemctl start jenkins
如果啟動失敗,報錯找不到 /usr/bin/java ,需要創建Jdk軟鏈接
開啟防火牆8080端口,重啟防火牆服務
firewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld.service
查看端口狀態
netstat -lntp
netstat -lnp|grep 8080
查看Jenkins密碼:
cat /var/lib/jenkins/secrets/initialAdminPassword
遠程訪問該計算機 http://ip:8080,即可進入Jenkins
11.VSCode
安裝
yum check-update sudo yum install code
設為默認編輯器
xdg-mime default code.desktop text/plain
官網地址:https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions
接下來,怎么啟動VSCode呢。找到他的路徑,然后拷貝到桌面,即可。
它的實際安裝路徑其實是這里:
其實你也可以不用找到它的路徑,而是用這種方式:
或者你也可以在VSCode中選擇要打開的項目:
大功告成。
我感覺使用調試時不是很方便,不是很流暢,后來我還是選擇用windows上的VS Studio來編譯。
同時VS Studio也會有自帶的單元測試功能等,VSCode 是一個輕量級的編譯器,你需要什么功能的話需要添加插件等。
總結
我上文中提到了持續集成工具,主要的目的就是為了我方便將代碼從Windows高效同步到linux中。代碼自動化部署。降低了運維成本等。
所以我今后的實戰都將會把本地windows作為開發環境,linux作為生產環境。
同時linux可能不止一台,以后會談到微服務以及分布式的問題,docker容器就發揮上用場了,一切為了簡化部署。