:::
顯示具有 Linux 標籤的文章。 顯示所有文章

Linux伺服器常用的排程設定 / My Linux’s crontab Configuration

布丁布丁吃布丁

Linux伺服器常用的排程設定 / My Linux’s crontab Configuration

image

最近發現自己在管理Linux伺服器的時候太常用到crontab裡面的設定了。與其每次都回頭去查鳥哥,不如直接在這裡記錄一份,未來就可以直接套用了吧。

(more...)

Proxmox VE 4.2配置失敗記錄 / Failed to Setup Proxmox VE 4.2

Proxmox VE 4.2配置失敗記錄 / Failed to Setup Proxmox VE 4.2

image

繼前幾天開始研究Proxmox VE 4.2,我也試著將Proxmox VE 4.2以VirtualBox虛擬機器架設,並且測試看看新的虛擬化技術lxc新的高可用叢集Proxmox VE HA Manager,然後看看有沒有其他的功能好用。結果很遺憾,我未能順利成功使用這些功能。我想在這邊記錄一下這些失敗的過程,也許未來的我知道怎麼操作的話,也許看了會有些不同的感觸吧。

(more...)

在Ubuntu 14.04上安裝Webmin指令腳本 / A Webmin Installation Script for Ubuntu 14.04

布丁布丁吃布丁

在Ubuntu 14.04上安裝Webmin指令腳本 / A Webmin Installation Script for Ubuntu 14.04

image

Webmin是遠端管理Linux的一大量器,甚至許多伺服器設定與管理都比直接使用桌面環境來得方便操作,更不用說可以省下查找指令與設定檔位置的麻煩了。不過一般時候Webmin安裝的時候無法直接從apt-get完成。以Ubuntu來說,必須要先加入Webmin的APT套件庫、加入GPG金鑰,然後才能使用apt-get安裝Webmin。

這學期我在教Ubuntu 14.04的時候,為了方便同學安裝Webmin,我參考Linux技術手札中的安裝教學,將Webmin指令檔整理成以下數行。同學可以直接在Ubuntu中複製、貼上這些指令,就能順利安裝Webmin。

(more...)

OpenVZ虛擬應用範本備份 / Backup OpenVZ Format Virtual Templates

OpenVZ虛擬應用範本備份 / Backup OpenVZ Format Virtual Templates

image

最近在觀看Proxmox VE改版的時候才發現Proxmox VE已經捨棄使用OpenVZ虛擬化技術,而且虛擬應用範本主要的來源Turnkey Linux亦不再提供OpenVZ的格式。為了避免以後使用OpenVZ時找不到虛擬應用範本可供安裝,我認為需要趕快將手邊有的虛擬應用範本備份到其他地方,以供未來需要的時候還能找來下載。下面我以虛擬應用範本內含的系統來分類,有些混雜了下載自Proxmox VE跟我自己做的虛擬應用範本,全部一併備份吧。

(more...)

誰把 /var/log/secure 清空了?是logrotate! / Who clean /var/log/secure? Is logrotate

布丁布丁吃布丁

誰把 /var/log/secure 清空了?是logrotate! / Who clean /var/log/secure? Is logrotate

ways-hackers-hack-your-website-e1371080108770

/var/log/secure是Linux中記錄登錄資訊的重要記錄檔,當懷疑有駭客登入伺服器時,我們可以檢查secure來看看有沒有異常登錄的資訊。但是如果啟用logrotate的話,secure會定期被清空。

In Linux, logrotate will clean /var/log/secure regularly. It may not hacker's trick.


我被駭客了嗎? / Have Server been hacked?

昨天因為被網路組警告伺服器有釣魚資訊,所以我就檢查了一下伺服器的權限問題。

一般來說,伺服器的登入資訊都會寫在 /var/log/secure 中 (詳細可以看鳥哥)。因為我懷疑可能伺服器帳號可能已經被猜透了,讓外部駭客直接登入了這臺伺服器,因此我急忙查看 /var/log/secure 檔案。可是讓我很驚訝的是:

2014-10-23_102847

secure跟其他secure.1到secure.4的檔案大小居然是0! 只有secure記錄這我這幾次登入的資訊,都是我本人的電腦無誤。

 

我接下來很緊張地查看root以及常用帳號的history,看一下之前該帳號的操作指令是否有異常。但是那裡面的動作也都是我個人的操作,沒有問題。

網路上也有人在問這個問題,到底是為什麼 /var/log/secure 被清空了呢?

logrotate的工作 / logrotate’s Job

當我找到cron排程工作的時候,我才發現問題在哪裡。

2014-10-23_104231

查看cron.daily的時候,赫然發現有個不太熟悉的logrotate套件。根據鳥哥的說明,logrotate是一種定期打包、清空登錄檔的工具。

image

我查了一下 /etc/logrotare.conf,發現logrotate的確也如設定檔地運作。因此 /var/log/secure 被清空,這可能是由logrotate做的事情。

雖然無法保證這不是駭客的入侵,但至少又更瞭解了Linux的系統運作。

(more...)

修復Linux開機啟動程序initrd錯誤的問題 / Fixing a Broken initrd in Linux

布丁布丁吃布丁

修復Linux開機啟動程序initrd錯誤的問題 / Fixing a Broken initrd in Linux

2013-08-20_22-26-51

這篇是解決Linux開機時遇到啟動中找不到開機啟動程序,而出現「mount: could not find filesystem ‘/dev/root’」的解決方法。具體方式都是參考troy’s unix space的「Fixing a Broken initrd in Linux」。以下是記錄我自己的解決方式。

This is the solution when you encounter Linux boot failed with "mount: could not find filesystem ‘/dev/root’". The details are reference "Fixing a Broken initrd in Linux" in troy’s unix space. Following is my problem solved steps.


問題敘述 / Problem

  • 作業系統:CentOS 5 (不確定是5.幾版),編號是CentOS (2.6.18-164.15.1.e15)←注意這個編號,這在開機畫面中會看到,之後我們會用到這個編號喔。
  • 硬碟:使用PATA的IDE硬碟掛載,編號為hda
  • 操作環境:這是我在做P2V當中遇到的問題,修復過程都是在VirtualBox 4.2.6中完成。

我印象中之前是使用Clonezilla把實體機器上的CentOS複製到VirtualBox的VDI,以完成P2V (Physical-toVirtual)的作業。不過不知道是不是Clonezilla複製的過程有些問題,複製到VDI,確認硬碟位置與實體機器相同之後,我把它啟動時遇到了以下的錯誤訊息:

2013-08-20_22-26-51

(上面為止的都是正常啟動訊息)

Unable to access resume device (LABEL=SWAP-hda2)

mount: could not find filesystem ‘/dev/root’

setuproot: moving /dev failed: No such file or directory

setuproot: error mounting /proc: No such file or directory

setuproot: error mounting /sys: No such file or directory

switchroot: mount failed: No such file or directory

Kernel panic – not syncing: Attempted to kill init!

到此為止,系統就不能運作了。

我把錯誤訊息上網Google了一下,馬上就找到「Fixing a Broken initrd in Linux」這篇的解法。以下就是操作的過程。

Step.1 用CentOS光碟進入Linux救援模式 / Ener Linux Rescue Mode By CentOS Installation CD

我之前也有用救援模式(rescue mode)來修復無法啟動的CentOS,不過那時候是用fsck修復檔案系統(filesystem),這次是要修復開機啟動程序(initrd)。

2013-08-20_22-45-39

我這次一樣使用CentOS 5.2安裝光碟,從光碟開機之後看到以上畫面,接著輸入以下指令:

linux rescue

接著設定語系、鍵盤與網路。本次修復不需要用到網路,所以網路我就不開啟了。

2012-04-23_235030 continue

最重要的是選擇如何掛載原本的系統,畫面如上圖(我借用以前我自己修復過程的圖片)。請選擇「Continue」,救援模式會把原本的系統掛載到「/mnt/sysimage/」中。

2013-08-20_22-46-50

接著會進入指令列,輸入以下指令

sh-3.2# chroot /mnt/sysimage/

這樣就進入原本的系統中了。接下來我們要開始修復囉。

Step.2 備份開機映像檔 / Backup Boot Image File

會發生這個問題,是因為CentOS的開機映像檔毀損了。所以這篇文章的目的在於修復CentOS的開機映像檔。

開機映像檔的位置在 /boot 中。依照Linux版本不同,裡面會有不同編號的檔案。我上面有提到要特別注意CentOS的編號「2.6.18-164.15.1.e15」,以這個例子來說,我的檔案就會是「/boot/initrd-2.6.18-164.15.1.e15.img」。

我們在此先備份這個壞掉的開機映像檔,以免待會修壞了無法還原吧。

mv /boot/initrd-2.6.18-164.15.1.e15.img /boot/broken-initrd-2.6.18-164.15.1.e15.img

 

Step.3 建立開機映像檔 / Using “mkinitrd” Create Boot Image File

接著我們要用mkinitrd指令來建立新的映像檔。指令需要輸入兩個參數,一個是建立開機映像檔的位置,另一個是版本的編號。以我需要的編號「2.6.18-164.15.1.e15」來說,指令如下:

sh-3.2# /sbin/mkinitrd /boot/initrd-2.6.18-164.15.1.e15.img 2.6.18-164.15.1.e15

完成建立之後,你可以用指令「ls /boot/initrd*」來確認開機映像檔是否有正確建立。

沒有問題的話,輸入指令「exit」兩次來重新啟動系統。

重新啟動的時候記得要把CentOS光碟拿起來喔。

通過開機程序 / Pass Statup Process

2013-08-20_22-53-48

之後系統就能夠順利開機了。不過來到系統裡面,我發現原本可以運作的Tomcat出了點問題。後來我重新建立一個Apache Tomcat就恢復正常,也設定了自動啟動Tomcat跟PostgreSQL。跟這篇主題不太相關,所以細節我就不多提了。

以上就是整個修復的過程。

(more...)

Proxmox VE 3安裝與建立OpenVZ虛擬機器 / Proxmox VE 3 Installation and Setup OpenVZ Container

Proxmox VE 3安裝與建立OpenVZ虛擬機器 / Proxmox VE 3 Installation and Setup OpenVZ Container

proxmox-logo

為了推廣Proxmox VE 3OpenVZ虛擬應用樣板的使用,這篇以圖文解說來教大家安裝Proxmox VE 3以及在Proxmox VE 3裡面建立OpenVZ虛擬機器。

To promote Proxmox VE 3 and OpenVZ virtual appliance template technology, I write this guide article to teach you install Proxmox VE 3 and show you how to use Proxmox VE 3 to create OpenVZ container (virtual machine).


技術簡介 / Introduction

Proxmox VE

Proxmox VE是Proxmox公司推出的開放原始碼虛擬機器管理系統,目前已經推出到第三版,叫做Proxmox VE3。

Proxmox VE 3是相當容易安裝與使用的虛擬機器管理系統。他能結合OpenVZ與KVM兩種技術提供IaaS層級的雲端服務。而且是開放原始碼軟體,我們可以自由下載與使用。

OpenVZ與虛擬應用樣板 / OpenVZ & Virtual Appliance Template

OpenVZ是相當成熟的虛擬化技術,架設Linux網站的效率非常高。用OpenVZ通常是架設網站伺服器。網路上提供了相當多的樣板可以下載、安裝,一個樣板就是一個完整的網站服務,例如DrupalJoomla。你只要下載樣板、建立虛擬機器、設定網路、開機,用瀏覽器打開該虛擬機器的位置,一個完整的服務就這樣建好了。

以我的經驗,一台普通的伺服器可以架設20台以上的OpenVZ,全部都能正常提供服務。相較之下,以KVM技術來架設的虛擬機器最多大概不能超過3台。

OpenVZ跟現在主流的KVM、VMware等技術不同,只能虛擬化Linux,也不能相容大多雲端平台,只能在少數雲端平台中架設,例如這次要介紹的Proxmox。

以下就教大家如何建立運行OpenVZ所需要的雲端平台Proxmox VE,以及用OpenVZ來建立虛擬機器吧。


安裝環境 / Installation Environment

2013-07-14_205049

安裝Proxmox VE 3的硬體環境建議為:

  • CPU:最好是64位元架構。雖然32位元仍可以正常運作。如果CPU支援虛擬化指令集,例如Intel VT-x,那就可以用KVM虛擬機器。但是OpenVZ不管CPU有沒有支援虛擬化指令集都可以使用。
  • 記憶體 RAM:建議大於4GB,至少也要512MB。
  • 硬碟空間:建議大於60GB,至少也要4GB。
  • 網路:要配給Proxmox VE一個IP,底下的虛擬機器也建議擁有獨立IP。(如果IP不夠,可以嘗試架設虛擬區域網路,請看我之前寫的介紹

如果在實體伺服器上安裝Proxmox VE 3,建議盡量以以上參數為主喔。

使用VirtualBox安裝Proxmox VE 3 / Install Proxmox VE 3 on VirtualBox

你也可以用VirtualBox來架設Proxmox VE,提供自己測試使用。以下我就是用VirtualBox來架設Proxmox VE,配置參數為:

  • 作業系統:Debian (64 bit)
  • 網路Host-only 「僅限主機」介面卡。這是重點,Proxmox VE在Host-only底下預設IP就會是192.168.56.101。
  • 硬碟:2TB
  • 掛載光碟proxmox-ve_2.3-ad9c5c05-30.iso (MEGA備份)

然後接著把虛擬機器開機,就開始來安裝Proxmox VE 3囉。

Step 1. 安裝Proxmox VE 3 / Install Proxmox VE 3

開機之後,虛擬機器會因為光碟引導的關係,出現以下Proxmox安裝歡迎畫面。

2013-07-14_012547

按下Enter之後進入下一個畫面。一開始會因為Proxmox VE要從DHCP抓取IP的關係,需要稍微等待一下。然後接著會顯示授權條款,按Next繼續。

2013-07-14_012737

然後接著會顯示Proxmox VE的說明,按Next繼續。

2013-07-14_012812

然後接著要輸入鍵盤配置。在Country輸入Taiwan,Proxmox VE會自動辨識我們的鍵盤是U.S. English。按Next繼續。

2013-07-14_012851

接下來要輸入密碼跟E-Mail。密碼兩次都要相同,在此以「password」為例子作為Proxmox VE的密碼。E-Mail是給系統通知時寄送通知管理者的信箱位置。輸入完畢後按Next繼續。

2013-07-14_013320

接下來設定網路。Hostname (FQDN)必須是完整的網址,如「promxox.demo.com」。沒有在DNS上正式申請也無所謂,主要是辨識機器之用。下面是網路的設定,這是由DHCP抓取而來的設定。請在這裡就確定Proxmox VE的網路位置,不然之後很難修改。設定完畢之後按Next繼續。

2013-07-14_013412

接著開始安裝,大概等個30分鐘。

2013-07-14_013423

安裝完成,按Reboot重新啟動。重新啟動之後記得要把Proxmox VE的光碟拿掉喔。

2013-07-14_101925

重新啟動之後就會看到Proxmox VE的指令列端介面。至此為止Proxmox VE安裝就算完成囉。

2013-07-14_102048

Step 2. 進入Promox VE網頁管理介面 / Proxmox VE Central Web-base Management

Proxmox VE是沒有桌面端操控介面,大部分操作是透過網頁管理介面來進行。你看到指令列端的歡迎訊息寫著「https://192.168.56.101:8006」就是它的網頁管理介面的位置。以下操作都是在網頁管理介面中進行。我是使用Firefox 22.0來開啟Proxmox VE 3的網頁管理介面。

image

開啟網址:「https://192.168.56.101:8006」(注意是https,不是http)之後,你會先看到「這個連線未受信任」的訊息。這是因為Proxmox VE使用未受認證的SSL來連線。你可以花錢購買一個SSL認證來讓Proxmox VE連線狀況正常,不過通常我們會讓Firefox把它加入安全例外。

作法如下圖,步驟如下:

  1. 我了解此安全風險
  2. 新增例外網站
  3. 確認安全例外

2013-07-14_102704

接著進入Proxmox VE 3的網頁管理介面。登入畫面要你輸入帳號密碼。預設帳號密碼如下:

  • User name: root
  • Password: password (就是上面安裝Proxmox VE時要你輸入的密碼)

2013-07-14_102734

接著會正式進入到Proxmox VE網頁管理介面,這樣就可以進行虛擬機器的建立、管理等囉。

2013-07-14_102745

Step 3. 上傳虛擬應用樣板 / Upload Virtual Appliance Template

要用OpenVZ建立虛擬機器,必須要從虛擬應用樣板開始著手。請先從以下網址先下載你需要的樣板吧:

以下介紹是用Drupal的虛擬應用樣板debian-6.0-drupal_6.26-2_i386.tar.gz為例子介紹。

首先是在Proxmox VE的網頁管理介面中,從左邊的Server View裡找到local (proxmox)這個本機節點(因為Proxmox VE可以串連很多台Proxmox VE做集叢式管理,所以未來還可以加入其他節點),然後選擇標籤「Content」,再按下面的「Upload」開啟上傳對話視窗。

2013-07-14_102925

先選擇上傳檔案類型為「OpenVZ template」,也就是OpenVZ的虛擬應用樣板。再來選擇剛剛你下載的樣板檔案debian-6.0-drupal_6.26-2_i386.tar.gz,然後按下Upload。

image

上傳完成之後,Content裡面就有一個樣板了。確認樣板存在後,我們就可以來建立OpenVZ的虛擬機器囉。

Step 4. 建立OpenVZ虛擬機器 / Create OpenVZ Container (Virtual Machine)

OpenVZ的虛擬機器叫做Container,簡稱CT。有了虛擬應用樣板之後,你可以在Proxmox VE的網頁管理介面右上角的「Create CT」來建立OpenVZ的虛擬機器。

2013-07-14_210505

建立步驟是以精靈的方式一一跟你確認虛擬機器的參數。

第一步 General:主要要確認Hostname(主機名稱)與Password。主機名稱我輸入drupal,表示這是一個專門運作Drupal系統的虛擬機器。密碼我設為「password」。然後按Next進入下一步。

2013-07-14_210604

第二步 Template:選擇剛剛上傳的虛擬應用樣板debian-6.0-drupal_6.26-2_i386.tar.gz吧。按Next進入下一步。

2013-07-14_210641

第三步 Resources:此處設定記憶體、硬碟大小與CPU用量。

  • 記憶體:Memory是記憶體、Swap是以硬碟模擬的記憶體,在Linux中兩個參數最好相等。OpenVZ技術的記憶體是採共享的機制,因此上限只要不要超過實體機器記憶體的數量就可以了。
  • 硬碟:Disk size (GB),以GB為單位。用多少就是多少,沒有KVM或VMware那種動態硬碟,越用會讓硬碟越來越大的問題。
  • CPUs:使用CPU的額度,多核心CPU中才會去設定。

對Durpal來說,除了硬碟可以考慮設置大一點之外,其他都用預設參數即可。設定好之後按Next進入下一步。

2013-07-14_210654

第四步 Network:請設定固定IP,以Routed mode (venet)網路卡的形式,給予一個固定的IP吧。因為我現在是在VirtualBox的Host-only網路配置下,所以可以給它一個192.168.56.152的IP使用。這個IP非常重要,待會開啟Drupal就要用這個IP來連線喔。設定好之後按Next進入下一步。

2013-07-14_210725

第五步 DNS:設定DNS資訊。沒有特別需要用Domain Name操作什麼的話,此處可以先不設定。這些參數之後還是可以透過Proxmox VE的網頁管理介面來修改,就算設錯也沒關係。在此我就不設定,直接按Next進入下一步。

2013-07-14_210748

最後是確認OpenVZ虛擬機器的資訊,沒問題就按Finish開始建立虛擬機器。

2013-07-14_210757

建立虛擬機器大概不到五分鐘,出現「TASK OK」就算建立完成。

2013-07-14_210843

建立完成之後,你會發現左邊的ServerView多了一台100 (drupal),這就是剛剛建立的OpenVZ虛擬機器。

接著我們要先設定他會在Proxmox VE啟動的時候自動開機。點入100 (druapl)之後,進入Options,在Start at boot那項雙擊兩下滑鼠,編輯該選項。

image

將Start at boot打勾,按OK完成設定。

image

然後我們還要補設定一個網路參數。到Network頁面中,在Add按鈕下新增Network Device (veth)。

image

新增Name為eth0的網路卡。按下Add之後確定。

image

最後按下Start啟動虛擬機器。

image

到此為止,OpenVZ的虛擬機器就建立完成囉。

Setp 5. Drupal安裝與使用 / Drupal Installation & Usage

還記得剛剛建立OpenVZ虛擬機器的時候,我們設定了「192.168.56.152」作為它的IP嗎?一般來說,只要直接開啟這個IP,就能夠順利使用虛擬應用樣板的系統。

不過在使用之前,我們最好還是先閱讀一下Drupal虛擬應用樣板介紹網頁,看看我們還得要做些什麼東西才能使用Drupal。

image

根據Drupal虛擬應用樣板介紹網頁的敘述,接下來還要安裝Drupal的步驟。請用瀏覽器開啟「http://192.168.56.152/install.php

image

進入Drupal的安裝畫面。安裝步驟很容易,我就不講了,可以參考sunchiahom的Drupal 6安裝流程介紹

最後安裝完成之後,就可以直接用 http://192.168.56.152 來連線囉。

image

Step 6. 用指令列操作OpenVZ虛擬機器 / OpenVZ Container Console

Proxmox VE提供了主控台(Console)端的操作介面,讓我們能以指令列操作OpenVZ虛擬機器。如果你不是熟悉Linux的網管人員,可以不需要進入這一步操作。

開啟方式是在該虛擬機器中,按下右上角的Console。

image

接著會跳出一個Console端的視窗。Console是以Java Applet執行,常常會有因為太久沒更新過期而Firefox禁止我們開啟的現象。你可以按左上角的紅色積木來啟用Java。

2013-07-14_203127

啟用之後,Java也會跳出安全警告。按下「繼續」進入Console端。

2013-07-14_203141

以下就是Console端的畫面。登入帳號密碼為:

  • login: root
  • password: password (就是剛剛建立OpenVZ時設定的Password)

2013-07-14_205444


下一步:Proxmox VE結合主流的雲端平台 / Next: Integrate Proxmox VE with Cloud Platform

我上面也有提到,Proxmox VE的OpenVZ虛擬機器跟現在主流的雲端平台,像是Open StackOpen CloudOpen Nebula都不直接相容。Open Nebula可以安裝OpenVZ Plugin,可是手續挺複雜的樣子。

因此在我看來,最簡單的整合方式還是直接以KVM技術架設Proxmox VE,然後用Proxmox VE來管理底下的OpenVZ虛擬機器。概念圖如下:

image

上述架構中,主要是以Ezilla(使用OpenNebula雲端平台)為主的架構,然後之中架設虛擬機器安裝Proxmox VE,再到Proxmox VE中建立OpenVZ虛擬機器。這時Proxmox VE跟OpenVZ虛擬機器都會是列在同一個區域網路,可以經由Ezilla統一管理。但是管理介面就會區隔開來,平時主要是以Ezilla來管理,而要用OpenVZ虛擬機器時,再進到Proxmox VE來管理。

這個方法看起來可行,可是實際上還沒做過。這之間還有很多網路問題,像是Proxmox VE會需要多個連接埠來提供Console端的連線,在上述架構中就會遇到問題。不過Console端其實很少使用,平常都會用直接透過SSH連線操作OpenVZ虛擬機器,所以不用Console端也沒問題。

那剩下就是實作了,希望最近有機會能把它完成。

(more...)