AWS:手把手教你如何部署企業(yè)級云存儲網(wǎng)盤

來源: AWS
作者:吳金福
時間:2020-12-15
17432
Nextcloud是一個開源的、功能強大的云存儲網(wǎng)盤項目。它提供了一個安全和靈活的解決方案,允許用戶共享一個或多個文件和目錄,并與Nextcloud服務(wù)器同步。

Nextcloud是一個開源的、功能強大的云存儲網(wǎng)盤項目。它提供了一個安全和靈活的解決方案,允許用戶共享一個或多個文件和目錄,并與Nextcloud服務(wù)器同步。

部署演示

我們會使用快速入門的“Ubuntu Server 18.04 LTS”系統(tǒng)鏡像部署并運行Nextcloud,接著我們會配置NextCloud的LDAP應(yīng)用程序以允許活動目錄(Active Directory)的用戶登陸并使用Nextcloud,并將用戶的工作目錄設(shè)置到Amazon EFS文件系統(tǒng),同時掛載S3存儲桶作為共享盤。本次部署需要準備的前提條件包括:

-Amazon EC2實例

-Ubuntu Server 18.04 LTS

-Nextcloud

-AWS Directory Service

-Amazon EFS文件系統(tǒng)

-S3存儲桶

安裝Nextcloud

在AWS EC2控制臺上點擊啟動實例,然后從快速入門中選擇“Ubuntu Server 18.04 LTS”系統(tǒng)鏡像,選擇c5.large或更高配置的實例類型啟動實例。實例啟動后使用密鑰登陸Ubuntu系統(tǒng)。

步驟一:安裝LAMP

sudo apt update

sudo apt-get install apache2 mariadb-server libapache2-mod-php7.2 php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring php7.2-intl php-imagick php7.2-xml php7.2-ldap php7.2-zip

安裝完成后,檢查服務(wù)是否已經(jīng)啟動和啟用了自動啟動。

systemctl status apache2

systemctl status mariadb

systemctl is-enabled apache2

systemctl is-enabled mariadb

注意:如果沒有啟動或者沒有啟用自動啟動,使用下面的命令啟動并啟用自動啟動。

sudo systemctl start apache2

sudo systemctl start mariadb

sudo systemctl enable apache2

sudo systemctl enable mariadb

步驟二:安裝MariaDB

sudo mysql_secure_installation

回答提示問題:

為root輸入當前密碼(默認是沒有,回車即可)

Enter current password for root(enter for none):

是否設(shè)置root密碼(建議設(shè)置一個復雜的安全密碼)

Set root password?[Y/n]y

是否刪除匿名用戶

Remove anonymous users?[Y/n]y

是否禁止遠程登陸

Disallow root login remotely?[Y/n]y

是否刪除自帶的test測試數(shù)據(jù)庫

Remove test database and access to it?[Y/n]y

是否重新加載權(quán)限表

Reload privilege tables now?[Y/n]y

步驟三:配置Nextcloud數(shù)據(jù)庫

確保數(shù)據(jù)庫完成安裝之后,登陸數(shù)據(jù)庫:

sudo mysql-u root-p

運行以下sql命令,請注意使用您的密碼替換以下命令中的“PASSWORD”。

MariaDB [(none)]> CREATE DATABASE nextcloud; 

MariaDB [(none)]> CREATE USER ncadmin@localhost IDENTIFIED BY 'PASSWORD'; 

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.*  TO ncadmin@localhost IDENTIFIED BY 'PASSWORD'; 

MariaDB [(none)]> FLUSH PRIVILEGES; 

MariaDB [(none)]> EXIT;

步驟四:配置Nextcloud

從Nextcloud官方網(wǎng)站下載最新版本的Nextcloud:

sudo wget-c https://download.nextcloud.com/server/releases/nextcloud-20.0.1.zip

解壓并復制到web服務(wù)器的根目錄下,并設(shè)置所有權(quán):

sudo unzip nextcloud-18.0.0.zip

sudo cp-r nextcloud/var/www/html/

sudo chown-R www-data:www-data/var/www/html/nextcloud

為Nextcloud創(chuàng)建一個Apache配置文件:

sudo cat <<EOF > /etc/apache2/sites-available/nextcloud.conf

Alias /nextcloud "/var/www/html/nextcloud/"


<Directory /var/www/html/nextcloud/>

  Require all granted

  Options FollowSymlinks MultiViews

  AllowOverride All


 <IfModule mod_dav.c>

  Dav off

 </IfModule>


 SetEnv HOME /var/www//html/nextcloud

 SetEnv HTTP_HOME /var/www/html/nextcloud

</Directory>

EOF

啟用新的配置和模塊:

sudo a2ensite nextcloud.conf

sudo a2enmod rewrite

sudo a2enmod headers

sudo a2enmod env

sudo a2enmod dir

sudo a2enmod mime

重新啟動Apache2服務(wù),使更改生效:

sudo systemctl restart apache2

步驟五:通過圖形向?qū)瓿蒒extcloud的安裝

在開始配置之前,我們還需要將TCP端口80的入站規(guī)則添加到安全組,并將該安全組與實例相關(guān)聯(lián)。如果使用HTTPS,還需要將TCP端口443的入站規(guī)則添加到安全組。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk2.png

打開瀏覽器,指向以下地址:http://IP/nextcloud/

安裝向?qū)Ъ虞d后,創(chuàng)建一個Nextcloud管理員帳戶。輸入用戶名和密碼,并配置數(shù)據(jù)庫。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk3.png

安裝完成后,您將看到以下窗口。單擊將出現(xiàn)在藍色窗口右側(cè)的向前箭頭繼續(xù)并按照提示進行操作。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk4.png

然后在下一個窗口中,單擊Start Using Nextcloud開始使用。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk5.png

步驟六:配置S3存儲桶為外部存儲

Amazon S3提供99.999999999%的持久性,提供了一個高度擴展、高持久性和高可用的分布式數(shù)據(jù)存儲服務(wù)。Nextcloud完全兼容S3的API接口,可以很容易地將S3存儲桶掛載為外部存儲。在開始配置之前,我們需要創(chuàng)建一個S3存儲桶和一個可以編程方式訪問該存儲桶的IAM用戶。如果使用已經(jīng)存在的S3存儲桶和IAM用戶,可以跳到Nextcloud配置外部存儲。

登陸S3控制臺,創(chuàng)建一個存儲桶。

登陸IAM控制臺,從訪問管理菜單中單擊策略,創(chuàng)建策略。

JSON內(nèi)容如下,請將nextcloud更改為您的存儲桶名字。

{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Effect": "Allow",

            "Action": "s3:*",

            "Resource": [

                "arn:aws-cn:s3:::nextcloud",

                "arn:aws-cn:s3:::nextcloud/*"

            ]

        }

    ]

}

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk6.png

從訪問管理菜單中單擊用戶,添加用戶。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk7.png

附加剛剛創(chuàng)建的策略

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk8.png

下載密鑰文件

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk9.png

點擊右上角的Admin用戶圖標,選擇Apps

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk10.png

點擊搜索框圖標,搜索“External storage support“,在單擊External storage support的Enable按鈕啟用

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk11.png

啟用后,點擊Admin用戶圖標,選擇Settings

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk12.png

單擊左邊Administration菜單下的External storages

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk13.png

下圖是配置寧夏區(qū)域S3存儲桶的示例。如果是配置海外區(qū)域的S3存儲桶。

寧夏區(qū)域S3的主機名是s3.cn-northwest-1.amazonaws.com.cn

北京區(qū)域S3的主機名是s3.cn-north-1.amazonaws.com.cn

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk14.png

配置完成后,單擊左上方的文件夾圖標,選擇“All files”,可以看到我們剛剛配置的S3存儲桶。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk15.png

步驟七:配置LDAP

在配置LDAP之前,我們需要創(chuàng)建一個活動目錄。如果使用已經(jīng)存在的活動目錄,可以跳到Nextcloud配置LDAP。

創(chuàng)建活動目錄,如下圖:

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk16.png

回到Nextcloud控制臺,和上面的步驟一樣,點擊右上角的Admin用戶圖標,選擇Apps,搜索LDAP并啟用。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk17.png

啟用LDAP后,點擊Admin用戶圖標,選擇Settings,單擊左邊Administration菜單下的“LDAP/AD integration”。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk18.png

具體配置詳見Nextcloud的LDAP配置文檔。我們根據(jù)活動目錄的信息填寫配置,單擊“Test Base DN”測試配置是否正確。

注意:Server地址為活動目錄的DNS地址,端口為389。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk19.png

選擇允許登陸Nextcloud的用戶組。在AWS托管的活動目錄里,新創(chuàng)建的用戶默認會分配到組“Domain Users”??蓡螕粝路降摹癡erify settings and count users”查找該用戶組的成員數(shù)。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk20.png

配置登陸方式。如果希望使用AD用戶的郵箱地址登陸,則可以勾選“LDAP/AD Email Address”如下圖??稍谙路降摹癟est Loginname”輸入AD用戶名驗證。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk21.png

最后,默認情況下,在Nextcloud上不會有LDAP組。我們選擇活動目錄的默認用戶組“Domain Users”在Nextcloud可用。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk22.png

用戶工作目錄的命名規(guī)則默認是根據(jù)LDAP的用戶屬性創(chuàng)建,如果是遷移或者升級后設(shè)置失效,可以運行以下命令強制啟用命名規(guī)則:

sudo-u www-data php/var/www/html/nextcloud/occ config:app:set user_ldap enforce_home_folder_naming_rule–value=”true”

我們還可以運行以下命令設(shè)置LDAP的同步間隔,間隔以秒為單位,例如設(shè)置為一天,即86400秒。

sudo-u www-data php/var/www/html/nextcloud/occ config:app:set user_ldap updateAttributesInterval--value=86400

注意,除了LDAP APP外,Nextcloud還有非常豐富的APP,例如draw.io流程圖繪制應(yīng)用、WebMail插件RainLoop、開源辦公onlyoffice應(yīng)用等等。

步驟八:配置域名

Nextcloud安裝后,默認信任的域名只有IP地址,如果希望通過域名連接Nextcloud,需要添加信任域名,運行如下命令:

sudo-u www-data php/var/www/html/nextcloud/occ config:system:set trusted_domains 1--value=nextcloud.example.com

或者修改配置文件/var/www/html/nextcloud/config/config.php中的array變量

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk23.png

步驟九:配置EFS

從上面步驟的截圖我們看到'datadirectory'=&gt;'/var/www/html/nextcloud/data',這是Nextcloud的默認配置,用戶的工作目錄均放在路徑/var/www/html/nextcloud/data,為了更好的持久性和可擴展性,建議將所有用戶的工作目錄放在可擴展的、彈性原生云NFS文件系統(tǒng)Amazon Elastic File System。這樣一來,我們可以實現(xiàn)多臺主備服務(wù)器同時掛載EFS,提高可用性。

創(chuàng)建EFS文件系統(tǒng)。

通過SSH登陸Nextcloud服務(wù)器,掛載EFS,然后運行以下命令修改datadirectory的路徑:

進入維護模式:

sudo-u www-data php/var/www/html/nextcloud/occ maintenance:mode--on

拷貝現(xiàn)有文件到EFS,假設(shè)EFS掛載在/efs:

cp-a/var/www/html/nextcloud/data/./efs

chown-R www-data:www-data/efs

修改datadirectory參數(shù):

sudo-u www-data php/var/www/html/nextcloud/occ config:system:set datadirectory--value="/efs"--update-only

退出維護模式:

sudo-u www-data php/var/www/html/nextcloud/occ maintenance:mode–off

注意,您也可以直接進入維護模式之后,將EFS掛載到/var/www/html/nextcloud/data,這樣就不需要更改目錄路徑。

步驟十:登陸Nextcloud客戶端

Nextcloud支持Windows、Mac、Android、iOS、Linux等各種平臺的客戶端。下載安裝后,打開客戶端,選擇login。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk24.png

輸入nextcloud的IP地址或者域名,http://Server_IP/nextcloud/

注意,演示使用的是HTTP。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk25.png

單擊Next,將跳轉(zhuǎn)到瀏覽器,單擊Log in,登陸并授權(quán)。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk26.png

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk27.png

設(shè)置同步。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk28.png

打開軟件,選擇Settings并設(shè)置同步S3存儲桶。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk29.png

打開Nextcloud云盤,即可看到用戶自己的工作目錄(存放在EFS,僅自己可見),還有作為共享盤的S3存儲桶(所有成員可見)。

teach-you-how-to-deploy-an-enterprise-level-cloud-storage-network-disk29.png

總結(jié)

在本次演示中,考慮到僅在VPC內(nèi)使用,所以沒有配置SSL,若是在生產(chǎn)環(huán)境中使用,建議配置SSL證書,使用HTTPS連接。Nextcloud是一款開源免費的云存儲網(wǎng)盤項目。除了上述的安裝方式,還支持Docker快速安裝,配合AWS S3和EFS服務(wù),我們可以快速地構(gòu)建企業(yè)級的云存儲網(wǎng)盤,從而實現(xiàn)跨平臺跨設(shè)備的文件同步、共享、版本控制和團隊協(xié)作等功能。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于AWS,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家