自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用Ansible來(lái)交付Vagrant實(shí)例

系統(tǒng) Linux
Ansible 是一款系統(tǒng)管理員進(jìn)行自動(dòng)化運(yùn)維的強(qiáng)大工具。Ansible 讓配置、交付、管理各種容器、軟件部署變得非常簡(jiǎn)單?;谳p量級(jí)模塊的架構(gòu)非常適合系統(tǒng)管理,一個(gè)優(yōu)點(diǎn)就是如果某個(gè)節(jié)點(diǎn)沒(méi)有被 Ansible 管理的話(huà),它的資源就不會(huì)被使用。

[[174199]]

Ansible 是一款系統(tǒng)管理員進(jìn)行自動(dòng)化運(yùn)維的強(qiáng)大工具。Ansible 讓配置、交付、管理各種容器、軟件部署變得非常簡(jiǎn)單?;谳p量級(jí)模塊的架構(gòu)非常適合系統(tǒng)管理,一個(gè)優(yōu)點(diǎn)就是如果某個(gè)節(jié)點(diǎn)沒(méi)有被 Ansible 管理的話(huà),它的資源就不會(huì)被使用。

這篇文章介紹用 Ansible 來(lái)配置 Vagrant 實(shí)例,它是一個(gè)配置好的基礎(chǔ)虛擬機(jī)映像,包含了開(kāi)發(fā)環(huán)境中需要用到的工具。你可以用它來(lái)部署開(kāi)發(fā)環(huán)境,然后和其他成員協(xié)同工作。用 Ansible,你可以用你的開(kāi)發(fā)包自動(dòng)化交付 Vagrant 實(shí)例。

我們用 Fedora 24 做主機(jī),用 CentOS 7 來(lái)作 Vagrant 實(shí)例。

設(shè)置工作環(huán)境

在用 Ansible 配置 Vagrant 實(shí)例時(shí),你需要做幾件準(zhǔn)備的事情。首先在宿主機(jī)上安裝 Ansible 和 Vagrant,在你的主機(jī)上運(yùn)行下面的命令來(lái)安裝:

  1. sudo dnf install ansible vagrant vagrant-libvirt 

上面的命令將 Ansible 和 Vagrant 在你的宿主機(jī)上,以及包括 Vagrant 的 libvirt 接口。Vagrant 并沒(méi)有提供托管你的虛擬機(jī)的功能,它需要第三方工具比如:libirt、VirtualBox、VMWare 等等。這些工具可以直接與你的 Fedora 系統(tǒng)上的 libvirt 和 KVM 協(xié)同工作。

接著確認(rèn)你的賬戶(hù)在正確的 wheel 用戶(hù)組當(dāng)中,確保你可以運(yùn)行系統(tǒng)管理員命令。如果你的賬號(hào)在安裝過(guò)程中就創(chuàng)建為管理員,那么你就肯定在這個(gè)用戶(hù)組里。運(yùn)行下面的命令查看:

  1. id | grep wheel 

如果你能看到輸出,那么你的賬戶(hù)就在這個(gè)組里,可以進(jìn)行下一步。如果沒(méi)有的話(huà),你需要運(yùn)行下面的命令,這一步需要你提供 root 賬戶(hù)的密碼,將 <username> 換成你的用戶(hù)名:

  1. su -c 'usermod -a -G wheel <username>

然后,你需要注銷(xiāo)然后重新登錄,確保在用戶(hù)組里。

現(xiàn)在要建立你的***個(gè) Vagrant 實(shí)例了,你需要用 Ansible 來(lái)配置它。

設(shè)置 Vagrant 實(shí)例

配置一個(gè)鏡像實(shí)例之前,你需要先創(chuàng)建它。創(chuàng)建一個(gè)目錄,存放 Vagrant 實(shí)例相關(guān)的文件,并且將它作為當(dāng)前工作目錄,用下面這條命令:

  1. mkdir -p ~/lampbox && cd ~/lampbox 

在創(chuàng)建鏡像實(shí)例之前,你需要搞清楚目的,這個(gè)鏡像實(shí)例是一個(gè)運(yùn)行 CentOS 7 基礎(chǔ)系統(tǒng),模板包括 Apache 的 Web 服務(wù),MariaDB(MySQL 原開(kāi)發(fā)者創(chuàng)建的一個(gè)流行的開(kāi)源數(shù)據(jù)庫(kù))數(shù)據(jù)庫(kù)和 PHP 服務(wù)。

初始化 Vagrant 實(shí)例,用 vagrant init 命令:

vagrant init centos/7

這個(gè)命令初始化 Vagrant 實(shí)例,并創(chuàng)建一個(gè)名為 Vagrantfile 的文件,包含一些預(yù)先配置的變量。打開(kāi)并編輯它,下面的命令顯示了用于這次配置的基本鏡像實(shí)例。

  1. config.vm.box = "centos/7" 

現(xiàn)在設(shè)置端口轉(zhuǎn)發(fā),以便你配置完畢 Vagrant 實(shí)例并讓它運(yùn)行起來(lái)之后可以測(cè)試它。將下述配置加入到 Vagrantfile 的最終的 end 語(yǔ)句之前:

  1. config.vm.network "forwarded_port", guest: 80, host: 8080 

這個(gè)命令將 Vagrant 實(shí)例 的 80 端口映射為主機(jī)的 8080 端口。

下一步是設(shè)置 Ansible 作為配置 Vagrant 實(shí)例的工具,將下述配置加入到 Vagrantfile 最終的 end 語(yǔ)句之前,將 Ansible 作為配置工具provisioning provider:

  1. config.vm.provision :ansible do |ansible| 
  2. ansible.playbook = "lamp.yml" 
  3. end 

(必須將這三行在***的 end 語(yǔ)句之前加入)注意 ansible.playbook = "lamp.yml" 這一句定義了配置鏡像實(shí)例的 Ansible playbook 的名字。

創(chuàng)建 Ansible playbook

在 Ansible 之中,playbook 是指在你的遠(yuǎn)端節(jié)點(diǎn)執(zhí)行的策略,換句話(huà)說(shuō),它管理遠(yuǎn)端節(jié)點(diǎn)的配置和部署。詳細(xì)的說(shuō),playbook 是一個(gè) Yaml 文件,在里面寫(xiě)入你要在遠(yuǎn)端節(jié)點(diǎn)上將要執(zhí)行的任務(wù)。所以,你需要?jiǎng)?chuàng)建一個(gè)名為 lamp.yml 的 playbook 來(lái)配置鏡像實(shí)例。

在 Vagrantfile 相同的目錄里創(chuàng)建一個(gè) lamp.yml 文件,將下面的內(nèi)容粘貼到文件當(dāng)中:

  1. --- 
  2. - hosts: all 
  3.   become: yes 
  4.   become_user: root 
  5.   tasks: 
  6.   - name: Install Apache 
  7.     yum: name=httpd state=latest 
  8.   - name: Install MariaDB 
  9.     yum: name=mariadb-server state=latest 
  10.   - name: Install PHP5 
  11.     yum: name=php state=latest 
  12.   - name: Start the Apache server 
  13.     service: name=httpd state=started 
  14.   - name: Install firewalld 
  15.     yum: name=firewalld state=latest 
  16.   - name: Start firewalld 
  17.     service: name=firewalld state=started 
  18.   - nameOpen firewall 
  19.     command: firewall-cmd --add-service=http --permanent 

每一行代表的意思:

  • hosts: all 指定該 playbook 需要在 Ansible 配置文件中定義的所有主機(jī)上都執(zhí)行,因?yàn)檫€沒(méi)定義主機(jī), playbook 將只在本地運(yùn)行。
  • sudo: true 表明該任務(wù)需要用 root 權(quán)限運(yùn)行。(LCTT 譯注:此語(yǔ)句上述配置中缺失。)
  • tasks: 指定當(dāng) playbook 運(yùn)行是需要執(zhí)行的任務(wù),在這一節(jié)之下:
  • name: ... 描述任務(wù)的名字
  • yum: ... 描述該任務(wù)應(yīng)該由 yum 模塊執(zhí)行,可選的 key=value 鍵值對(duì)將由 yum 模塊所使用。

當(dāng) playbook 運(yùn)行時(shí),它會(huì)安裝***的 Apache Web 服務(wù)(http),MariaDB 和 PHP。當(dāng)安裝完畢并啟動(dòng)防火墻 firewalld,給 Apache 打開(kāi)一個(gè)端口。你可以通過(guò)編寫(xiě) playbook 來(lái)完成這些?,F(xiàn)在可以配置它了。

配置鏡像 實(shí)例

用 Ansible 配置 Vagrant 實(shí)例只需要以下幾步了:

  1. vagrant up --provider libvirt 

上面的命令運(yùn)行 Vagrant 實(shí)例,將實(shí)例的基礎(chǔ)鏡像下載到宿主機(jī)當(dāng)中(如果還沒(méi)下載的話(huà)),然后運(yùn)行 lamp.yml 來(lái)進(jìn)行配置。

如果一切正常,輸出應(yīng)該和下面的例子類(lèi)似:

這個(gè)輸出顯示鏡像實(shí)例已經(jīng)被配置好了,現(xiàn)在檢查服務(wù)是否可用,在宿主機(jī)上打開(kāi)瀏覽器,輸入http://localhost:8080,記住本地主機(jī)的 8080 端口是 Vagrant 實(shí)例映射過(guò)來(lái)的 80 端口。你應(yīng)該可以看到如下的 Apache 的歡迎界面。

要修改你的 Vagrant 實(shí)例,你可以修改 lamp.yml,你能從 Ansible 的官網(wǎng)上找到很多文章。然后運(yùn)行下面的命令來(lái)重新配置:

  1. vagrant provision 

總結(jié)

現(xiàn)在我們知道怎么用 Ansible 來(lái)配置 Vagrant 實(shí)例了。這只是一個(gè)基本的例子,但是你可以用這些工具來(lái)實(shí)現(xiàn)不同的例子。比如你可以用所需工具的***版本來(lái)部署一個(gè)完整的應(yīng)用?,F(xiàn)在你可以用 Ansible 來(lái)配置你自己的遠(yuǎn)端服務(wù)器和容器了。

責(zé)任編輯:武曉燕 來(lái)源: Linux中國(guó)
相關(guān)推薦

2020-10-10 20:30:05

Ansible自動(dòng)化工具系統(tǒng)運(yùn)維

2020-01-02 10:44:22

運(yùn)維架構(gòu)技術(shù)

2018-02-01 18:05:48

Ubuntu虛擬機(jī)Vagrant

2020-10-26 09:00:00

LinuxVagrant操作系統(tǒng)

2017-02-27 18:04:22

容器軟件交付

2022-04-01 15:39:13

機(jī)器學(xué)習(xí)讓孩子們軟件交付

2019-11-18 14:00:40

開(kāi)發(fā)工具環(huán)境搭建vagrant

2020-01-02 19:00:05

AnsibleGitHubGitLab

2023-03-17 10:55:45

ChatGPT人工智能

2011-03-16 09:05:29

iptablesNAT

2021-04-23 08:00:00

Kubernetes容器工具

2018-02-07 11:15:07

Vagrant使用問(wèn)題

2019-07-16 19:00:00

Ansible配置自動(dòng)化

2020-04-16 08:00:00

Ansible Vau敏感數(shù)據(jù)加密

2020-02-17 16:28:49

開(kāi)發(fā)技能代碼

2021-11-22 09:00:00

后端開(kāi)發(fā)CMS

2023-02-03 11:40:49

機(jī)器學(xué)習(xí)分析情感

2018-12-06 09:07:59

Ansible服務(wù)器運(yùn)維

2017-12-18 09:02:42

Red Hat SysAnsible集成

2011-08-29 10:17:19

動(dòng)態(tài)數(shù)據(jù)中心應(yīng)用交付
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)