在CoreOS上搭建一個WordPress程序操作實(shí)例
CoreOS是一個專門為大規(guī)模服務(wù)器部署定制的Linux精簡系統(tǒng),它將操作系統(tǒng)和應(yīng)用程序完全分離,從而降低操作系統(tǒng)和應(yīng)用程序的耦合度,同時解決了現(xiàn)有Linux服務(wù)器在容器資源、權(quán)限管理方面出現(xiàn)的問題。就目前來說,CoreOS會是未來操作系統(tǒng)的發(fā)展趨勢。
那你有沒有親自在CoreOS上部署一個應(yīng)用程序呢?相信大多數(shù)人都沒有過這樣的經(jīng)驗(yàn),在CoreOS上建立一個應(yīng)用程序可以說是非常辛苦及沮喪的。因?yàn)樵陂_始建立程序之前你首先必須了解所有不同的技術(shù)。
下面,我們將手把手地教你來創(chuàng)建一個簡單的WordPress應(yīng)用程序,采用MySQL作為服務(wù)器,在CoreOS上運(yùn)行。
1. 安裝CLI來控制CoreOS
如果你的電腦是Mac,可以在本機(jī)安裝fleetctl和etcdctl來控制CoreOS集群:
$ brew install go etcdctl
$ git clone https://github.com/coreos/fleet.git
$ cd fleet
$ ./build
$ mv bin/fleetctl /usr/local/bin/
2. 安裝本地集群
使用部署虛擬化開發(fā)環(huán)境Vagrant來安裝本地集群很容易:
$ git clone https://github.com/CenturyLinkLabs/coreos-vagrant
$ cd coreos-vagrant/cluster
$ vagrant up --provision
現(xiàn)在集群就安裝好了,簡單吧!下面就讓我們來檢查一下本地fleetctl:
MACHINE IP METADATA
09fd0a88... 10.0.2.15 -
77763947... 10.0.2.15 -
f31c383c... 10.0.2.15 -
真棒,它起作用了!
3. 使用fleet部署一個應(yīng)用程序
fleetctl命令可把應(yīng)用程序部署到CoreOS集群的節(jié)點(diǎn)中,但要為fleet寫服務(wù)文件真的是太糟糕了。幸運(yùn)的是,你不必自己編寫,你可以使用yaml format來生成服務(wù)文件:
$ sudo gem install bundler fig2coreos
$ cat fig.yml
web:
image: ctlc/wordpress
ports:
- 80:80
environment:
DB_USER: root
DB_PASSWORD: qa1N76pWAri9
links:
- db
db:
image: ctlc/mysql
ports:
- 3306:3306
environment:
MYSQL_DATABASE: wordpress
MYSQL_ROOT_PASSWORD: qa1N76pWAri9
$ fig2coreos myapp fig.yml coreos-files
$ cd coreos-files
$ ls
db-discovery.1.service
db.1.service
web-discovery.1.service
web.1.service
fleetctl客戶端工具使用的是etcd系統(tǒng)的Key/Value存儲形式,以分享配置和服務(wù)發(fā)現(xiàn)。下面教大家如何把程序部署到集群中:
$ fleetctl list-units
UNIT LOAD ACTIVE SUB DESC MACHINE
db.1.service loaded active running Run db_1 9c008961.../10.0.2.15
$ fleetctl start web.1.service
$ fleetctl list-units
UNIT LOAD ACTIVE SUB DESC MACHINE
db.1.service loaded active running Run db_1 9c008961.../10.0.2.15
web.1.service loaded active running Run web_1 9c008961.../10.0.2.15
現(xiàn)在程序就運(yùn)行了,但是還沒有注冊etcd的服務(wù),幸運(yùn)的是fig2coreos生成的服務(wù)發(fā)現(xiàn)文件可以幫助我們:
$ fleetctl start web-discovery.1.service
$ fleetctl list-units
UNIT LOAD ACTIVE SUB DESC MACHINE
db-discovery.1.service loaded active running Announce db_1 9c008961.../10.0.2.15
db.1.service loaded active running Run db_1 9c008961.../10.0.2.15
web-discovery.1.service loaded active running Announce web_1 9c008961.../10.0.2.15
web.1.service loaded active running Run web_1 9c008961.../10.0.2.15
$ etcdctl ls --recursive
/services
/services/web
/services/web/web_1
/services/db
/services/db/db_1
$ etcdctl get /services/web/web_1
{ "host": "core-03", "port": 80, "version": "52c7248a14" }
$ etcdctl get /services/db/db_1
{ "host": "core-03", "port": 3306, "version": "52c7248a14" }
這樣就完成了!如果你使用的是Vagrant 1.5及Vagrant Cloud,那么你就可以實(shí)現(xiàn) WordPress程序并看到它可以實(shí)行了:
$ cd ~/coreos-vagrant/cluster/
# find out which box is hosting your port 80
$ etcdctl get /services/web/web_1
{ "host": "core-03", "port": 80, "version": "52c7248a14" }
$ vagrant share core-03 --http 80
==> core-03: Detecting network information for machine...
core-03: Local machine address: 192.168.65.2
core-03: Local HTTP port: 80
core-03: Local HTTPS port: disabled
==> core-03: Checking authentication and authorization...
==> core-03: Creating Vagrant Share session...
core-03: Share will be at: quick-iguana-4689
==> core-03: Your Vagrant Share is running! Name: quick-iguana-4689
==> core-03: URL: http://quick-iguana-4689.vagrantshare.com
下面就是做好的效果圖:
![]() |
其實(shí)我們可以在CoreOS上能做很多事,今天這個只是基礎(chǔ),感興趣的你可以動手試一試。
相關(guān)文章
Linux系統(tǒng)中sudo命令的十個技巧總結(jié)
Linux 下使用Sudo 命令,可以讓普通用戶也能執(zhí)行一些或者全部的root命令,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)中sudo命令的十個技巧,需要的朋友可以參考借鑒,下面來一起看看吧。2018-04-04VMware虛擬機(jī)安裝Linux系統(tǒng)圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware虛擬機(jī)安裝Linux系統(tǒng)教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10centos 7 修改sshd | 禁止 root登錄及sshd端口腳本定義
這篇文章主要介紹了centos 7 修改sshd | 禁止 root登錄及sshd端口腳本定義,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09linux下/etc/passwd文件的選項(xiàng)說明
/etc/passwd 文件是系統(tǒng)的主要文件之一。該文件中包含了所有用戶登錄名清單;為所有用戶指定了主目錄;在登錄時使用的 shell 程序名稱等。該文件還保存了用戶口令;給每個用戶提供系統(tǒng)識別號。2008-06-06Linux服務(wù)器如何修改默認(rèn)的遠(yuǎn)程連接端口
這篇文章主要介紹了Linux服務(wù)器如何修改默認(rèn)的遠(yuǎn)程連接端口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12