1. 程式人生 > >初階專案一-整合一套linux系統:紅帽系統,LVM分割槽,Apache服務,MySQL服務,資料定時備份指令碼

初階專案一-整合一套linux系統:紅帽系統,LVM分割槽,Apache服務,MySQL服務,資料定時備份指令碼

[TOC] # 一.專案目標 ​ 根據公司要求:整合一套LINUX系統,按照規定進行分區劃分,組建LVM分割槽,建立使用者;部署一套web+mysql,並通過shell指令碼+cron執行定期自動備份資料。 # 二.實施工具 ​ 本次軟體實施需要用到的工具: VMware Workstation虛擬機器、rhel-server-7.5-x86_64-dvd.iso映象檔案、xshell遠端連線工具。 # 三.專案實施計劃 1.安裝rhel7.5系統 - ​ 首先,使用VMware Workstation12虛擬機器進行模擬安裝,作業系統是rhel7.5的版本,由於在實際工作環境中一般都是接觸不了伺服器的,都是通過遠端工具xshell、crt這些工具進行遠端連線操作,所以伺服器是安裝帶gui的圖形化介面,而在安裝好作業系統之,可以通過配置/etc/sysconfig/network-scritpts/ifcfg-ensxx修改網絡卡資訊,或者使用命令nmtui進行網絡卡的配置; - ​ 配置本地yum,滿足後期安裝各種軟體或工具的需求; - ​ 在安裝好作業系統之後關掉防火牆和Selinux,並設定防火牆開機不啟動; - ​ 在上面的都配置後之後,需要為系統做一個快照,以防止以後系統出現不可修復的問題時,可以快速恢復系統,不影響應用的正常執行。 2.組建LVM分割槽:LVM分割槽比標準分割槽更好擴充套件,方便後期分割槽容量不足時,進行擴容。 3.安裝apache服務 - ​ ISO光碟映象中有Apache程式,所以可以通過yum的方式來安裝apache服務; - ​ 通過Web瀏覽器訪問Apache的地址,測試Apache是否安裝成功。 4.安裝MySQL服務。 5.自動備份資料 - ​ 通過cron和shell指令碼自動備份資料; - ​ 在完成cron和shell備份之後,在shell指令碼中新增自動刪除5天前的備份資料。 # 四.安裝rhel7.5作業系統 ## 4.1 配置虛擬機器 1.在虛擬機器的主頁上點選建立新的虛擬主機 ![image-20201214164418183](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214164418183.png) 2.選擇自定義,然後下一步 ![image-20201214163918334](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214163918334.png) 3.一直預設下一步,直到選擇安裝源時選擇稍後安裝系統 ![image-20201214164728319](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214164728319.png) 4.客戶機的作業系統選擇linux,由於我們需要安裝的時rhel7.5 64位的系統,所以在下面的版本選擇Red Hat Enterprise Linux 7 64 位, 然後下一步 ![](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214164615224.png) 5.選擇虛擬機器的名稱和虛擬機器安裝的位置,路徑最好是自己選擇,這樣方便以後做遷移 ![image-20201215163420167](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215163420167.png) 6.一路預設,在選擇網路的時候選擇僅主機模式 ![image-20201214165214935](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214165214935.png) 7.一直下一步,直到選擇磁碟,選擇建立新虛擬磁碟,點選下一步 ![image-20201214165319231](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214165319231.png) 8.選擇磁碟的容量和磁碟是否為單個檔案,本人在這裡的選擇是磁碟大小20G,為單個檔案,點選下一步 ![image-20201214165440617](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201214165440617.png) 9.在這一步可以自定義硬體,也可以點選完成,在後面在完善虛擬機器的硬體資訊,本人是選擇之後再配置硬體資訊,所以是直接點選完成 ![image-20201215163600996](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215163600996.png) 10.配置完成之後可以在介面看到配置好的主機資訊 ![image-20201215163751924](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215163751924.png) 選擇編輯虛擬機器設定 ![image-20201215163912937](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215163912937.png) 11.由於音效卡和印表機可以不要,所以可以點選移除,而安裝系統需要映象即iso檔案,所以在CD/DVD選擇你的映象檔案 ![image-20201215164116952](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215164116952.png) ![image-20201215164240865](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215164240865.png) 12.自此,虛擬機器的配置就完成了,下面開始安裝作業系統。 ## 4.2 安裝作業系統 1.點選開啟此虛擬機器 ![image-20201215164445845](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215164445845.png) **介面說明**: **Install Red Hat Enterprise Linux 7.2** 安裝RHEL7.2 **Test this media & install Red HatEnterprise Linux 7.2** 測試安裝檔案並安裝RHEL 7.2 **Troubleshooting** 修復故障 ![image-20201215000639505](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215000639505.png) 2.在這一步可以點選回車繼續安裝,或者等待一會自動繼續安裝 ![image-20201215000734345](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215000734345.png) 3.選擇語言:簡體中文(新手選擇中文,老手選擇英文) ![image-20201215000949508](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215000949508.png) 4.需要把介面上的都配置好才可以進行下一步的安裝,本地化的日期和時間、鍵盤和語言支援都選預設,不用修改 ![image-20201215001103188](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001103188.png) 5.把SECURITY的開啟改為關閉 ![image-20201215001157909](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001157909.png) ![image-20201215001252812](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001252812.png) 6.選擇伺服器的軟體安裝,這裡選擇的是帶GUI的伺服器,但是由於在實際環境中都是通過xshell、crt這些遠端工具連線的,所以後期安裝好系統之後也會用遠端工具進行連線 ![image-20201215001400802](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001400802.png) ![image-20201215001450796](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001450796.png) 7.選擇安裝位置,進行磁碟分割槽 ![image-20201215001605187](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001605187.png) 8.選擇-其它儲存選項-分割槽-我要配置分割槽,點左上角的“完成”,進入下面的介面,在分割槽方案有標準分割槽,btrfs,LVM,LVM簡單配置,這裡預設LVM就可以,然後單擊"+"建立新的分割槽,分割槽提前規劃好,一般swap分割槽為實體記憶體的1.5~2倍,/boot分割槽300M-500M,/home分割槽給2G,剩餘的空間全部給/分割槽,實際工作中可以建立資料分割槽,一般把資料和系統分開 ![image-20201215001857733](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001857733.png) ![image-20201215001939783](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215001939783.png) 建立/boot分割槽 ![image-20201215002106073](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215002106073.png) 9.裝置型別選擇預設的標準分割槽,檔案系統型別為xfs,RHEL7支援brtfs,生產環境不建議選擇,btrfs檔案系統目前技術尚未成熟,只是作為一種前瞻技術 ![image-20201215002233566](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215002233566.png) 10.建立/swap分割槽 ![image-20201215002408321](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215002408321.png) 11.建立/home分割槽 ![image-20201215002517432](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215002517432.png) 12.建立/分割槽(期望容量不填,代表把剩餘的所有空間都給/分割槽) ![image-20201215002651344](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215002651344.png) 13.選擇接受更改(這裡相當於windows的格式化分割槽) ![image-20201215002757864](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215002757864.png) 14.配置網路,選擇開啟,開啟之後會自動獲取一個ip,如果需要手動配置的話,可以選擇配置,也可以在系統安裝完成之後再進行配置,在這裡就先不配置,等安裝好系統之後再進行配置,然後點選開始安裝 ![image-20201215003002828](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003002828.png) 15.設定root密碼,這裡提示密碼強度較差,因為是虛擬機器所以密碼不用太複雜,但在實際環境中,密碼的設定需要符合安全性的標準 ![image-20201215003207806](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003207806.png) ![image-20201215003244739](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003244739.png) 16.下圖代表作業系統正在安裝,等待即可 ![image-20201215003410130](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003410130.png) 17.安裝完成之後,點選重啟,進行最後的配置 ![image-20201215003501434](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003501434.png) 18.進入啟動介面 ![image-20201215003605618](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003605618.png) 19.首次啟動許可配置,選擇同意許可協議即可 ![image-20201215003707957](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003707957.png) ![image-20201215003743637](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003743637.png) 20.點選完成配置 ![image-20201215003832809](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003832809.png) 21.最後確認語言和鍵盤輸入 ![image-20201215003937922](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215003937922.png) ![image-20201215004009445](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215004009445.png) 22.配置時區,如果在前面開啟了網路,這裡會自動獲取時區,如果沒有開啟的話,可以選擇shangghai會自動出現相關的選項 ![image-20201215004108211](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215004108211.png) 23.配置登陸的個人賬號密碼 ![image-20201215163151740](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215163151740.png) ![image-20201215004244918](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215004244918.png) 24.系統到這裡已經正式安裝完成 ![image-20201215004346896](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215004346896.png) ![image-20201215004413837](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215004413837.png) ## 4.3 系統配置 ### 4.3.1 網路配置 1.網路配置可以使用nmtui、nmtui-connect和修改配置檔案3種方法,配置網路需要使用root使用者。檢視網絡卡的資訊,可以使用ifconfig 或ip addr, 由於在安裝的時候沒有開啟網路,所以ifconfig是看不到相應的ip地址資訊的。 2.配置靜態IP,網絡卡配置資訊地址:/etc/sysconfig/network-scripts/ifcfg-ensxx (網絡卡一般是ens開頭的,後面是隨機的數字),使用vim 編輯器修改之後用:wq或者:x儲存退出 ```shell [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" #IPV6INIT="yes" #IPV6_AUTOCONF="yes" #IPV6_DEFROUTE="yes" #IPV6_FAILURE_FATAL="no" #IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="1d4c270e-2a48-474d-b963-ad0e68eafbcd" DEVICE="ens33" ONBOOT="yes" DNS1=114.114.114.114 IPADDR=192.168.110.184 NETMASK=255.255.255.0 GATEWAY=192.168.110.2 ZONE= ``` 3.重啟網路服務(systemctl restart NetworkManager和service network restart任選其一即可) ```shell #重啟網絡卡 [root@localhost ~]# systemctl restart NetworkManager #檢視網絡卡狀態 [root@localhost ~]# systemctl status NetworkManager ● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-12-15 10:32:54 CST; 8s ago Docs: man:NetworkManager(8) Main PID: 100634 (NetworkManager) CGroup: /system.slice/NetworkManager.service ├─100634 /usr/sbin/NetworkManager --no-daemon └─100657 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens37.pid -lf /var/lib/NetworkManager/dhclient-31881a66-4327-3e39-a2ab-b060a3b74062-ens37.lease -cf /var/lib/Ne... ...... [root@localhost ~]# service network restart Restarting network (via systemctl): [ OK ] [root@localhost ~]# service network status Configured devices: lo ens33 Currently active devices: lo ens33 ``` 4.新增DNS ```shell [root@localhost ~]# vim /etc/resolv.conf [root@localhost ~]# cat /etc/resolv.conf # Generated by NetworkManager search localdomain nameserver 192.168.110.2 nameserver 114.114.114.114 ``` 5.測試網路是否暢通 ```shell #-c:代表ping的次數 #有資料返回代表網路正常 [root@localhost ~]# ping -c 4 www.g.cn PING www.g.cn (203.208.40.98) 56(84) bytes of data. 64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=1 ttl=128 time=27.9 ms 64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=2 ttl=128 time=28.7 ms 64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=3 ttl=128 time=28.4 ms 64 bytes from 203.208.40.98 (203.208.40.98): icmp_seq=4 ttl=128 time=28.5 ms --- www.g.cn ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3007ms rtt min/avg/max/mdev = 27.921/28.417/28.746/0.305 ms ``` ### 4.3.2 修改主機名 1.方法一:使用命令:nmtui ```shell [root@localhost ~]# nmtui ``` ![image-20201215105105091](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215105105091.png) ![image-20201215105145182](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215105145182.png) 2.方法二:命令:hostnamectl set-hostname 需要修改的主機名 ```shell [root@localhost ~]# hostnamectl set-hostname node5 [root@localhost ~]# hostname node5 ``` 修改主機名之後重啟系統,輸入賬號密碼之後就發現主機名已經變成剛才設定的了 ### 4.3.3 關閉防火牆和selinux 1.關閉防火牆 ```shell #關閉防火牆 [root@node5 ~]# systemctl stop firewalld #禁止防火牆開機自啟動 [root@node5 ~]# systemctl disable firewalld #檢視防火牆是否成功禁止開機自啟,命令:systemctl status firewalld.service #因為在前面已經關掉防火牆和禁止開機自啟,所以檢視一下防火牆狀態即可 [root@node5 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) #檢視防火牆是否禁止開機自啟動 [root@node5 ~]# systemctl is-enabled firewalld disabled ``` 2.關閉selinux:selinux配置檔案的路徑:/etc/selinux/config,把SELINUX=enforcing註釋,在最後新增一行SELINUX=disabled,儲存退出之後重啟系統 ```shell [root@node5 ~]# vim /etc/selinux/config [root@node5 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted #檢視selinux是否關閉 #命令為:getenforce或sestatus -v [root@node5 ~]# getenforce Disabled [root@node5 ~]# sestatus -v SELinux status: disabled ``` ### 4.3.4 配置本地yum源 1.掛載光碟 ```shell [root@node5 ~]# mount /dev/sr0 /media ``` 2.編輯yum源配置檔案,路徑:/etc/yum.repos.d ```shell [root@node5 ~]# vim /etc/yum.repos.d/dvd.repo [dvd] #yum源名稱,唯一的,用來區分不同的yum源 name=yum server #對yum源描述資訊 baseurl=file:///media   #yum源的路徑(repodata目錄所在的目錄) enabled=1   #為1,表示啟用yum源 gpgcheck=0    #為1,表示使用公鑰檢驗rpm的正確性 ``` 3.清除快取資訊,更新yum選單 ```shell [root@node5 ~]# yum clean all [root@node5 ~]# yum list ``` 4.測試yum是否配置成功,能安裝軟體就成功 ```shell [root@node5 ~]# yum -y install gcc ``` 5.設定開機自動掛載iso映象檔案,把光碟寫進/etc/fstab,實現開機自啟,命令: echo '/dev/sr0 /media iso9660 defaults 0 0'>>/etc/fstab ```shell [root@node5 ~]# echo '/dev/sr0 /media iso9660 defaults 0 0'>>/etc/fstab ``` ### 4.3.5 建立快照 選中虛擬機器->快照->拍攝快照->名稱按自己的需要(我的是配置好yum源的,名稱就寫yum源已配置)->描述可寫可不寫(怕自己忘記可以在描述中講述除了yum源還配置了什麼或者做了什麼操作) ![image-20201215165019667](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215165019667.png) 正在做快照 ![image-20201215144604254](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215144604254.png) # 五.組建LVM 1.新新增一塊30G的硬碟 ![image-20201215170234046](https://gitee.com/zhelilize/blogimg/raw/master/img/image-20201215170234046.png) 2.建立掛載點 ```shell [root@node5 ~]# mkdir -p /backup/web /backup/app /backup/tools /backup/logs ``` 3.建立分割槽(gdisk或者fdisk) ```shell #lsblk檢視磁碟情況,發現新增的磁碟沒有出現,重啟即可 [root@node5 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 35G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk ├─sdb1 8:17 0 50M 0 part /sdb1 ├─sdb2 8:18 0 1K 0 part ├─sdb5 8:21 0 200M 0 part /sdb5 └─sdb6 8:22 0 298M 0 part /sdb6 sr0 11:0 1 1024M 0 rom #重啟機器 [root@node5 ~]# init 6 #新增的磁碟sdc出現了 [root@node5 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 35G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 1G 0 disk ├─sdb1 8:17 0 50M 0 part /sdb1 ├─sdb2 8:18 0 1K 0 part ├─sdb5 8:21 0 200M 0 part /sdb5 └─sdb6 8:22 0 298M 0 part /sdb6 sdc 8:32 0 30G 0 disk sr0 11:0 1 1024M 0 rom #使用gdisk進行磁碟分割槽,也可以使用fdisk進行磁碟分割槽 [root@node5 ~]# gdisk /dev/sdc GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. #新增分割槽 Command (? for help): n Partition number (1-128, default 1): First sector (34-62914526, default = 2048) or {+-}size{KMGTP}: Last sector (2048-62914526, default = 62914526) or {+-}size{KMGTP}: Current type is 'Linux filesystem' #L檢視所有分割槽型別 Hex code or GUID (L to show codes, Enter = 8300): L 0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE 3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot 4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS 7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved 8200 Linux swap 8300 Linux filesystem 8301 Linux reserved 8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+ af01 Apple RAID af02 Apple RAID offline af03 Apple label af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit Press the