Proxmox – Ununtu 16.04 LXC 初始環境設定

1. 將更新的 Server 都指向國家高速網路中心
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.$(date +%F)
$ sudo sed -i ‘s/archive.ubuntu.com/free.nchc.org.tw/g’ /etc/apt/sources.list
 
清除所有的
$ sudo apt-get clean all
更新套件庫
$ sudo apt-get update[@more@]2. 進行更套更新
$ sudo apt-get upgrade

3. 補足缺少的套件
$ sudo apt-get install vim zip unzip mailutils ntpdate

4. 讓終端機程式可以輸入及顯示中文
$ sudo locale-gen en_US.UTF-8
$ sudo update-locale LANG=en_US.UTF-8
$ sudo update-locale LANGUAGE=en_US.UTF-8

5. 時區及預設編輯器設定
$ sudo tail -2 /etc/profile
export TZ=”Asia/Taipei”
export EDITOR=”/usr/bin/vim”

6.安裝 Apache Web Server
$ sudo apt-get install apache2
$ sudo systemctl enable apache2.service
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable apache2
$ systemctl start apache2.service

7. 安裝 MariaDB SQL Server
$ sudo apt install mariadb-server
$ sudo systemctl enable mysql
$ sudo systemctl start mysql
$ sudo /usr/bin/mysql_secure_installation

8. 安裝 PHP7
$ sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-bz2 php7.0-mbstring php7.0-zip
$ sudo systemctl restart apache2.service

設定檔
MSQL
/etc/mysql/mysql.conf.d/mysqld.cnf
Apache
/etc/apache2/conf-available/security.conf
PHP
/etc/php/7.0/apache2/php.ini

9. 安裝 snmpd
$ sudo apt-get install snmpd snmp
$ sudo echo ‘rocommunity public’ > /etc/snmp/snmpd.conf
$ sudo  chmod 600 /etc/snmp/snmpd.conf
$ sudo systemctl enable snmpd.service
$ sudo systemctl start snmpd.service

Proxmox – CentOS 7 LXC 初始環境設定

1. 安裝 OpenSSH Server
# yum install openssh-server

設定開機時啟動 OpenSSH Server
# systemctl enable sshd.service

啟動 OpenSSH Server
# systemctl start sshd.service[@more@]2. 修改套件更新來源
# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.$(date +%F)

將 mirrorlist 那一行的前面加上 # 註解
 # sed -i ‘s,mirrorlist=http://mirrorlist.centos.org,#mirrorlist=http://mirrorlist.centos.org,’ /etc/yum.repos.d/CentOS-Base.repo
把 #baseurl 前面的 # 去除
# sed -i ‘s,#baseurl=http://mirror.centos.org,baseurl=http://mirror.centos.org,’ /etc/yum.repos.d/CentOS-Base.repo
http://mirror.centos.org/centos/ 替換成 ftp://140.111.74.109/CentOS/
# sed -i ‘s,http://mirror.centos.org/centos/,ftp://140.111.74.109/CentOS/,’ /etc/yum.repos.d/CentOS-Base.repo
安裝 EPEL 套件庫
# yum install epel-release
去除舊的 yum cache
# yum clean all
開始進行更新
# yum update

3.補足缺少的套件
# yum install which vim nano yum-utils net-tools bind-utils mlocate zip unzip wget iptables-services ntpdate net-snmp net-snmp-utils bzip2 lsof less
# yum install fail2ban ssmtp logwatch cronie

# systemctl enable fail2ban.service
# systemctl start fail2ban.service

4. 設定時區及預設編輯器
# tail -2 /etc/profile
export EDITOR=”/usr/bin/vim”
export TZ=”Asia/Taipei”

5. 安裝 LAMP
# yum install httpd mariadb mariadb-server php php-mysql php-gd php-pear php-xml php-xmlrpc php-mbstring php-soap
php-bcmath php-dba php-embedded php-enchant php-fpm php-intl php-mysqlnd php-odbc php-pspell php-recode php-soap php-xmlrpc rrdtool-php uuid-php php-pecl-memcache

6. 設定開機時啟動
# systemctl enable httpd.service
# systemctl enable mariadb.service
# systemctl start httpd.service
# systemctl start mariadb.service

7. 設定 MariaDB SQL Server
# /usr/bin/mysql_secure_installation

Proxmox – 解決安裝在 VM 中的 Proxmox 無法啟動 KVM

如果純粹是為了測試 Proxmox,而把 Proxmox 安裝在 VM 中,在啟動 KVM 會出現 Error: No accelerator found! 的警告訊息,而無法正常啟動 KVM。
下方的 Tasks

出現的警告訊息

[@more@]解決方式:
1. 選擇 KVM 虛擬機器 / Options / KVM hardware virtualization

2. 預設值是 Yes

3. 把預設值取消

4. KVM hardware virtualization 的預設值就改成 No

5. 可以進行安裝了!

不過,這種執行速度會非常緩慢,因為是採用「全模擬」的方式來模擬,所以執行效率相對地非常慢。

Proxmox – 變更 LXC 虛擬機器網路設定

新增 LXC 虛擬機器時的網路設定

[@more@]建立完成之後,如果要修改網路設定,並不是在 LXC 虛擬機器中設定,
如:
Ubuntu Linux:
/etc/network/interfaces
CentOS Linux:
/etc/sysconfig/network-scripts/ifcfg-eth0

而是在
選擇 LXC 虛擬機器 / Network / net0 / Edit 中做設定

進行修改

或直接修改設定檔 /etc/pve/lxc/102.conf
固定 IP
# cat /etc/pve/lxc/102.conf
arch: amd64
cores: 1
hostname: Ubuntu1604
memory: 512
net0: name=eth0,bridge=vmbr0,gw=192.168.1.254,hwaddr=9E:5B:BC:13:35:A7,ip=192.168.1.228/24,ip6=dhcp,type=veth
ostype: ubuntu
parent: OK
rootfs: local-lvm:vm-102-disk-1,size=15G
swap: 512

DHCP 取得 IP
# cat /etc/pve/lxc/102.conf
arch: amd64
cores: 1
hostname: Ubuntu1604
memory: 512
net0: name=eth0,bridge=vmbr0,hwaddr=
9E:5B:BC:13:35:A7,ip=dhcp,ip6=dhcp,type=veth
ostype: ubuntu
rootfs: VM:102/vm-102-disk-1.raw,size=15G
swap: 512

Proxmox – 變更 LXC 虛擬機器的磁碟機大小

在新增 LXC 時,預設的磁碟空間是 8G

登入之後
# pct enter 102
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0      7.8G  588M  6.8G   8% /
none            492K     0  492K   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.2M  2.0G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup[@more@]磁碟空間部分只能增加,無法減少
選擇 LXC 虛擬機器 / Resource / Root Disk / Resize disk

輸入要增加的磁碟空間大小

最後按右上角的 X

改變之後的磁碟空間
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       15G  590M   14G   5% /
none            492K     0  492K   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.2M  2.0G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup

Proxmox – 目錄

上傳的 ISO 檔存放目錄 /var/lib/vz/template/iso
# ls -l /var/lib/vz/template/iso
-rw——- 1 root root 780476416 Jan 17 14:36 CentOS-Server-7.1.1503-x86_64_20150403.iso
-rw-r–r– 1 root root 155856896 Sep 30 21:42 virtio-win.iso

下載下來的 Templates 樣板檔存放目錄 /var/lib/vz/template/cache
# ls -l /var/lib/vz/template/cache
-rw-r–r– 1 root root 172887417 Dec  7 23:31 archlinux-base_20161207-1_amd64.tar.gz
-rw-r–r– 1 root root 131014872 Dec  7 10:32 centos-6-default_20161207_amd64.tar.xz
-rw-r–r– 1 root root  65763092 Dec  7 10:35 centos-7-default_20161207_amd64.tar.xz
-rw-r–r– 1 root root 197123375 Apr 20  2016 ubuntu-16.04-standard_16.04-1_amd64.tar.gz[@more@]Dump 備份目錄 /var/lib/vz/dump
# ls -l /var/lib/vz/dump
-rw-r–r– 1 root root       598 Jan 20 13:25 vzdump-lxc-101-2017_01_20-13_25_45.log
-rw-r–r– 1 root root 448876806 Jan 20 13:25 vzdump-lxc-101-2017_01_20-13_25_45.tar.lzo

LXC 設定檔目錄 /etc/pve/nodes/pve/lxc
# ls -l /etc/pve/nodes/pve/lxc
-rw-r–r– 1 root www-data 773 Jan 20 13:36 101.conf
-rw-r–r– 1 root www-data 282 Jan 20 13:41 102.conf
-rw-r–r– 1 root www-data 492 Jan 20 14:21 103.conf

/etc/pve/lxc
# ls -l /etc/pve/lxc
lrwxr-xr-x 1 root www-data 0 Jan  1  1970 /etc/pve/lxc -> nodes/pve/lxc/

LXC 目錄 /var/lib/lxc
# ls -l /var/lib/lxc
drwxr-xr-x 3 root root 4096 Jan 20 13:12 101/
drwxr-xr-x 3 root root 4096 Jan 20 13:41 102/
drwxr-xr-x 3 root root 4096 Jan 20 13:54 103/

KVM(qemu) 設定目錄 /etc/pve/nodes/pve/qemu-server
# ls -l /etc/pve/nodes/pve/qemu-server
-rw-r—– 1 root www-data 299 Jan 17 14:39 100.conf

/etc/pve/qemu-server
# ls -l /etc/pve/qemu-server
lrwxr-xr-x 1 root www-data 0 Jan  1  1970 /etc/pve/qemu-server -> nodes/pve/qemu-server/

KVM(qemu) Image 存放目錄 /var/lib/vz/images
# ls -l /var/lib/vz/images
drwxr—– 2 root root 4096 Jan 25 11:52 100/

# ls -l /var/lib/vz/images/100
-rw-r—– 1 root root 34365243392 Jan 25 11:52 vm-100-disk-1.qcow2

Proxmox – 使用指令來控制虛擬機器

KVM(qemu)
開啟
# /usr/sbin/qm start 101
關閉
# /usr/sbin/qm stop 101

更多用法
# qm help
USAGE: qm <COMMAND> [ARGS] [OPTIONS]
       qm agent <vmid> <command>
       qm clone <vmid> <newid> [OPTIONS]
       qm config <vmid> [OPTIONS]
       qm create <vmid> [OPTIONS]
       qm delsnapshot <vmid> <snapname> [OPTIONS]
       qm destroy <vmid> [OPTIONS]
       qm list  [OPTIONS]
       qm listsnapshot <vmid>
       qm migrate <vmid> <target> [OPTIONS]
       qm move_disk <vmid> <disk> <storage> [OPTIONS]
       qm pending <vmid>
       qm reset <vmid> [OPTIONS]
       qm resize <vmid> <disk> <size> [OPTIONS]
       qm resume <vmid> [OPTIONS]
       qm rollback <vmid> <snapname>
       qm sendkey <vmid> <key> [OPTIONS]
       qm set <vmid> [OPTIONS]
       qm shutdown <vmid> [OPTIONS]
       qm snapshot <vmid> <snapname> [OPTIONS]
       qm start <vmid> [OPTIONS]
       qm stop <vmid> [OPTIONS]
       qm suspend <vmid> [OPTIONS]
       qm template <vmid> [OPTIONS]
       qm unlink <vmid> -idlist <string> [OPTIONS]

       qm monitor <vmid>
       qm mtunnel
       qm rescan  [OPTIONS]
       qm showcmd <vmid>
       qm status <vmid> [OPTIONS]
       qm terminal <vmid> [OPTIONS]
       qm unlock <vmid>
       qm vncproxy <vmid>
       qm wait <vmid> [OPTIONS]

       qm help [<cmd>] [OPTIONS]
[@more@]
LXC(Linux Container)
開啟
# /usr/bin/lxc-start -n 102
# /usr/sbin/pct start 102
關閉
# /usr/bin/lxc-stop -n 102
# /usr/sbin/pct stop 102

連線到 LXC
# /usr/sbin/pct enter 102
退出
# exit

查看設定檔
# pct config 100
arch: amd64
cores: 1
description: onboot%3A 1%0A
hostname: NPC111
memory: 512
net0: name=eth0,bridge=vmbr0,gw=192.168.1.254,hwaddr=FA:8E:DE:CF:AF:35,ip=192.168.1.111/24,ip6=dhcp,type=veth
ostype: centos
rootfs: S500G:100/vm-100-NPC111-disk-1.raw,size=8G
swap: 512

刪除 LXC (注意不會做任何提示)
# pct destroy 110

LXC 磁碟空間使用狀態
# pct df 100
MP     Volume                             Size   Used Avail Use% Path
rootfs S500G:100/vm-100-NPC111-disk-1.raw 7.7G 720.4M  6.6G  0.1 /

列出 LXC 執行狀態
# pct list
VMID       Status     Lock         Name
100        stopped                 NPC111
107        running                 ipv6
501        stopped                 ubuntu1604
502        stopped                 ubuntu1404

某一 LXC 執行狀態
# pct status 100
status: stopped

更多用法:
# pct help
USAGE: pct <COMMAND> [ARGS] [OPTIONS]
       pct clone <vmid> <newid> -experimental <boolean> [OPTIONS]
       pct create <vmid> <ostemplate> [OPTIONS]
       pct destroy <vmid>
       pct list
       pct migrate <vmid> <target> [OPTIONS]
       pct resize <vmid> <disk> <size> [OPTIONS]
       pct restore <vmid> <ostemplate> [OPTIONS]
       pct template <vmid> -experimental <boolean> [OPTIONS]

       pct config <vmid>
       pct set <vmid> [OPTIONS]

       pct delsnapshot <vmid> <snapname> [OPTIONS]
       pct listsnapshot <vmid>
       pct rollback <vmid> <snapname>
       pct snapshot <vmid> <snapname> [OPTIONS]

       pct resume <vmid>
       pct shutdown <vmid> [OPTIONS]
       pct start <vmid> [OPTIONS]
       pct stop <vmid> [OPTIONS]
       pct suspend <vmid>

       pct console <vmid>
       pct cpusets
       pct df <vmid>
       pct enter <vmid>
       pct exec <vmid> [<extra-args>]
       pct fsck <vmid> [OPTIONS]
       pct mount <vmid>
       pct pull <vmid> <path> <destination> [OPTIONS]
       pct push <vmid> <file> <destination> [OPTIONS]
       pct status <vmid> [OPTIONS]
       pct unlock <vmid>
       pct unmount <vmid>

       pct help [<cmd>] [OPTIONS]

Proxmox – 硬碟規劃

參考網站:
http://www.gienginali.idv.tw/modules/tad_book3/page.php?tbdsn=674

硬碟分割採用 Storage local 和 Storage local-lvm 的方式

[@more@]

 Storage local Storage local-lvm
 容量與 / 共用獨立的 lvm 區域
 可以直接使用,備份及還原比較直覺 由 Proxmox Server 控制存取,只能由網頁模式做存取,用指令模式是不可見的一塊隱藏區域。
 可以用來存放 Disk images 和  LXC 和 ISO 檔,VZDump 及Templates 樣板檔。 只能存放 Disk images 和  LXC 檔。
 如果主機安裝的虛擬機器數量不多,maxvz 可以設小一些,而 maxroot 可以設大一些。 如果主機安裝的虛擬機器數量不多,maxvz 可以設大一些,而 maxroot 可以設小一些。

Proxmox – 新增 KVM 虛擬機器

1. 首先要先將 OS Image 上傳到 Proxmox Server

2. 選擇 Create VM

[@more@]3. General 頁面設定
    VM ID: 識別流水號
    Name: 名稱(英文或數字,不能有特殊符號及中文字)

4. OS 頁面,設定要安裝的系統

5. CD/DVD 頁面設定

6.

7. Hard Disk 頁面設定

8. CPU 頁面設定

9. Memory 記憶體頁面設定

10. Network 網路頁面設定

11. Confirm 確認頁面設定

12. 按滑鼠右鍵,選擇 Start

13. 按右上角的 Console

14. 進行安裝