本教程基於linux系統,我安裝的是Centos 7,在VMware虛擬機中運行。html
1. 關於虛擬機平臺:Hype-V 與 VMwarejava
廣泛最經常使用的是VMware,後來我在本地計算機中安裝Docker(一種容器)以後,win10系統便自動開啓了 Hype-V,它與VMware競爭關係,開啓後便不能啓動VMware。node
因而我上手開始用Hype-V搭建虛擬機,安裝Centos 7比較順利,可是網絡調試和可視化桌面遇到了問題。linux
先簡單演示一下 win10 開啓 Hype-V 的方式,直接上圖:git
先談網絡:web
VMware 支持 NAT (VMnet8) 、 Bridge(VMnet0) 、 Host-Only(VMnet1)docker
NAT 最簡單,他是由本地計算機分配的網絡,共享同一個IP。shell
Bridge 是直接訪問硬件網卡,簡單說就是虛擬機走獨立的網絡。npm
最直觀的表現就是,若是大家公司上網須要到瀏覽器登陸一下獲取動態分配的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 等差異比較大。我選擇了後者。
上面我已經提到了由於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:
談一下爲何要安裝可視化桌面呢?
第一,用慣了windows系統,仍是但願出差錯的時候也能點一下鼠標的,雖然這個桌面要消耗我將近一個多G的硬盤空間。
第二,下載東西方便一點,能夠進瀏覽器裏面下載一些安裝包,雖然咱們大多數狀況都是用yum直接安裝的。
第三,我打算試試linux編程,安裝 VS Code,上手在linux中加斷點調試代碼,天然只用命令行是不行的,雖而後來我也放棄了這種方式,我仍是以爲VS Stutio要好用的多,不過我仍是要演示一下個人踩坑過程。
更新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
這個工具是安裝在你的windows本地計算機上的
安裝目的: 若是你的linux服務器不是你本地的虛擬機,而是機房服務器或者雲服務器的話,那你是不能經過VMWare來操做它的。只能用遠程來操做。
工具重量不少,我介紹一個我經常使用的:SecureCRT
SecureFX 工具能夠傳輸文件,一般和SecureCRT集成。這倆若是沒有集成的話,須要你單獨下載。
安裝
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 中設置的密碼便可。
登陸系統,完成。
爲何要安裝Jdk呢,咱們不是要作.net開發嗎,那是由於咱們接下來要用的Jenkins是須要運行在java環境下,我不肯定只安裝jrm是否可行,因此直接安裝了jdk
網絡上安裝教程比較多,推薦: http://www.javashuo.com/article/p-etonwsum-gu.html
我安裝了最新的版本 jdk12, 可是後來安裝Jenkins的時候發現不支持jdk12,由於版本過高了,我老老實實從新安裝了jdk8
須要測試一下java環境是否可用:
java -version
同時要建立軟連接
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
官方連接: 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
因爲須要作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
$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ yum -y install git-core $ git --version git version 1.7.1
移除舊的版本:
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
這一節,我目前就先不寫了,由於目前還用不到分佈式,當我再從此的文章中用到分佈式的時候必定會來修補的。畢竟我是完美主義,用盡全部的工具讓開發運維簡單化。
好吧,我認可,我之前也沒有用過這個東西,可是我目前不想學了,等我用到的時候必定會來學的。
安裝
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
安裝
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容器就發揮上用場了,一切爲了簡化部署。