Elaine's Blog 朝著 senior 前進的工程師

佈署虛擬機 CentOS 的開發環境設定

2018-11-22

安裝 CentOS 7

按照光碟步驟安裝即可

開啟網路

  1. 預設網卡是關閉的,需先開啟

    • 方法 1

      $ sudo ifup ens33
      
      $ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
      
      ONBOOT=yes
      
    • 方法 2 (手動)

      $ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
      
      // 其中幾行
      DEVICE=ens33" //網路卡代號
      HWADDR=08:00:27:71:85:BD //網路卡位址
      ONBOOT=yes //是否預設啟動此介面的意思
      BOOTPROTO=none //取得IP的方式,自動取得 IP則填入 dhcp,手動給予 IP 則可填入 none 或 static
      
      • 範例
      TYPE="Ethernet"
      PROXY_METHOD="none"
      BROWSER_ONLY="no"
      BOOTPROTO="dhcp"
      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="fb72fe54-e9da-42d6-9f07-8d8c6fe56b13"
      DEVICE="ens33"
      ONBOOT="yes"
      ZONE=public
      
  2. 重開網路

    $ service network restart
    
  3. 測試網路是否通了

    $ ping 8.8.8.8
    
  4. 查看這台 VM 分配到的內網 IP

    $ ip addr
    

使用 ssh 登入 (可略過)

我個人是不太喜歡虛擬機的 command line,所以使用 ssh 來登入虛擬機

  • [centos] 找到虛擬機的 IP

    $ ip addr
    

  • [mac] 使用 ssh 登入

    $ ssh root@172.16.1.136
    

新增使用者並成為 sudoer

  1. 新增使用者

    $ adduser elaine
    
  2. 設定使用者密碼 (不然會不能用喔)

    $ passwd elaine
    
  3. 使用者權限

    • 可以加到 sudoer

      $ sudo vim /etc/sudoer
      // 或是
      $ visudo
      

      新增一行

      elaine  ALL = (ALL) ALL
      
    • 或是將使用者加入 wheel 群組

      $ usermod -aG wheel elaine
      

更新系統套件

$ sudo yum upgrade

設定共享資料夾

  1. [mac] 先在 VMWare 程式裡設共用資料夾 vm-projects

  2. [centos] 在虛擬機上安裝套件

    $ sudo yum install open-vm-tools -y
    
  3. [centos] 在虛擬機家目錄下建立資料夾

    $ cd ~
    
    $ sudo mkdir projects
    
  4. [centos] 掛載資料夾,以下掛載後的資料夾權限用 root 舉例

    $ sudo vmhgfs-fuse .host:/vm-projects /home/elaine/projects -o subtype=vmhgfs-fuse,allow_other,rw,uid=$(id -u root),gid=$(id -g root)
    
    • .host:/vm-projects => 你 mac 要共享到虛擬機的資料夾
    • /home/elaine/projects => 你 centos 的資料夾
    • 可以輸入 $ cat /etc/passwd 來看各個帳號的 uid,gid 設定來調整自己的語法
    • 或是用 id -u [使用者帳號]可以直接查 uid,用 id -g [使用者帳號]可以直接查 gid
    • 若不小心掛載錯誤的話,可以透過以下指令取消掛載

      $ mount -l | grep project    // 查詢
      $ umount project    // 取消掛載
      
  5. 測試一下

    1. [centos] 在共享資料夾下新增一個檔案

      $ cd projects
      $ touch 123.txt
      
    2. [mac] 查看有沒有該檔案

  6. [centos] 設定開機自動執行指令 (很重要!!!)

    但是上面的操作只是臨時的,重新啟動系統後,共享文件夾就會失效,想要永久生效還需要進行其他的配置

    $ sudo vi /etc/rc.local
    

    將剛剛那行指令加在最後面

    例如:

    #!/bin/bash
    # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    #
    # It is highly advisable to create own systemd services or udev rules
    # to run scripts during boot instead of using this file.
    #
    # In contrast to previous versions due to parallel execution during boot
    # this script will NOT be run after all other services.
    #
    # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    # that this script will be executed during boot.
    
    touch /var/lock/subsys/local
    vmhgfs-fuse .host:/vm-projects /home/elaine/projects -o subtype=vmhgfs-fuse,allow_other,rw,uid=$(id -u root),gid=$(id -g root)
    

    再將檔案開啟可執行權限即可

    $ sudo chmod +x /etc/rc.local
    

    之後開機便會自動執行指令

參考資料


Content