(一)配置linux環境


==>>點擊查看本系列文章目錄

 

目錄

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 

首先下載安裝包

 官網下載:https://nodejs.org/en/

我用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容器就發揮上用場了,一切為了簡化部署。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM