成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用Ansible來交付Vagrant實例

系統 Linux
Ansible 是一款系統管理員進行自動化運維的強大工具。Ansible 讓配置、交付、管理各種容器、軟件部署變得非常簡單。基于輕量級模塊的架構非常適合系統管理,一個優點就是如果某個節點沒有被 Ansible 管理的話,它的資源就不會被使用。

[[174199]]

Ansible 是一款系統管理員進行自動化運維的強大工具。Ansible 讓配置、交付、管理各種容器、軟件部署變得非常簡單。基于輕量級模塊的架構非常適合系統管理,一個優點就是如果某個節點沒有被 Ansible 管理的話,它的資源就不會被使用。

這篇文章介紹用 Ansible 來配置 Vagrant 實例,它是一個配置好的基礎虛擬機映像,包含了開發環境中需要用到的工具。你可以用它來部署開發環境,然后和其他成員協同工作。用 Ansible,你可以用你的開發包自動化交付 Vagrant 實例。

我們用 Fedora 24 做主機,用 CentOS 7 來作 Vagrant 實例。

設置工作環境

在用 Ansible 配置 Vagrant 實例時,你需要做幾件準備的事情。首先在宿主機上安裝 Ansible 和 Vagrant,在你的主機上運行下面的命令來安裝:

  1. sudo dnf install ansible vagrant vagrant-libvirt 

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

接著確認你的賬戶在正確的 wheel 用戶組當中,確保你可以運行系統管理員命令。如果你的賬號在安裝過程中就創建為管理員,那么你就肯定在這個用戶組里。運行下面的命令查看:

  1. id | grep wheel 

如果你能看到輸出,那么你的賬戶就在這個組里,可以進行下一步。如果沒有的話,你需要運行下面的命令,這一步需要你提供 root 賬戶的密碼,將 <username> 換成你的用戶名:

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

然后,你需要注銷然后重新登錄,確保在用戶組里。

現在要建立你的***個 Vagrant 實例了,你需要用 Ansible 來配置它。

設置 Vagrant 實例

配置一個鏡像實例之前,你需要先創建它。創建一個目錄,存放 Vagrant 實例相關的文件,并且將它作為當前工作目錄,用下面這條命令:

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

在創建鏡像實例之前,你需要搞清楚目的,這個鏡像實例是一個運行 CentOS 7 基礎系統,模板包括 Apache 的 Web 服務,MariaDB(MySQL 原開發者創建的一個流行的開源數據庫)數據庫和 PHP 服務。

初始化 Vagrant 實例,用 vagrant init 命令:

vagrant init centos/7

這個命令初始化 Vagrant 實例,并創建一個名為 Vagrantfile 的文件,包含一些預先配置的變量。打開并編輯它,下面的命令顯示了用于這次配置的基本鏡像實例。

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

現在設置端口轉發,以便你配置完畢 Vagrant 實例并讓它運行起來之后可以測試它。將下述配置加入到 Vagrantfile 的最終的 end 語句之前:

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

這個命令將 Vagrant 實例 的 80 端口映射為主機的 8080 端口。

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

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

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

創建 Ansible playbook

在 Ansible 之中,playbook 是指在你的遠端節點執行的策略,換句話說,它管理遠端節點的配置和部署。詳細的說,playbook 是一個 Yaml 文件,在里面寫入你要在遠端節點上將要執行的任務。所以,你需要創建一個名為 lamp.yml 的 playbook 來配置鏡像實例。

在 Vagrantfile 相同的目錄里創建一個 lamp.yml 文件,將下面的內容粘貼到文件當中:

  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 配置文件中定義的所有主機上都執行,因為還沒定義主機, playbook 將只在本地運行。
  • sudo: true 表明該任務需要用 root 權限運行。(LCTT 譯注:此語句上述配置中缺失。)
  • tasks: 指定當 playbook 運行是需要執行的任務,在這一節之下:
  • name: ... 描述任務的名字
  • yum: ... 描述該任務應該由 yum 模塊執行,可選的 key=value 鍵值對將由 yum 模塊所使用。

當 playbook 運行時,它會安裝***的 Apache Web 服務(http),MariaDB 和 PHP。當安裝完畢并啟動防火墻 firewalld,給 Apache 打開一個端口。你可以通過編寫 playbook 來完成這些。現在可以配置它了。

配置鏡像 實例

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

  1. vagrant up --provider libvirt 

上面的命令運行 Vagrant 實例,將實例的基礎鏡像下載到宿主機當中(如果還沒下載的話),然后運行 lamp.yml 來進行配置。

如果一切正常,輸出應該和下面的例子類似:

這個輸出顯示鏡像實例已經被配置好了,現在檢查服務是否可用,在宿主機上打開瀏覽器,輸入http://localhost:8080,記住本地主機的 8080 端口是 Vagrant 實例映射過來的 80 端口。你應該可以看到如下的 Apache 的歡迎界面。

要修改你的 Vagrant 實例,你可以修改 lamp.yml,你能從 Ansible 的官網上找到很多文章。然后運行下面的命令來重新配置:

  1. vagrant provision 

總結

現在我們知道怎么用 Ansible 來配置 Vagrant 實例了。這只是一個基本的例子,但是你可以用這些工具來實現不同的例子。比如你可以用所需工具的***版本來部署一個完整的應用。現在你可以用 Ansible 來配置你自己的遠端服務器和容器了。

責任編輯:武曉燕 來源: Linux中國
相關推薦

2020-01-02 10:44:22

運維架構技術

2020-10-10 20:30:05

Ansible自動化工具系統運維

2018-02-01 18:05:48

Ubuntu虛擬機Vagrant

2017-02-27 18:04:22

容器軟件交付

2020-10-26 09:00:00

LinuxVagrant操作系統

2022-04-01 15:39:13

機器學習讓孩子們軟件交付

2023-03-17 10:55:45

ChatGPT人工智能

2019-11-18 14:00:40

開發工具環境搭建vagrant

2021-04-23 08:00:00

Kubernetes容器工具

2011-03-16 09:05:29

iptablesNAT

2020-01-02 19:00:05

AnsibleGitHubGitLab

2018-02-07 11:15:07

Vagrant使用問題

2021-11-22 09:00:00

后端開發CMS

2023-02-03 11:40:49

機器學習分析情感

2011-08-29 10:17:19

動態數據中心應用交付

2020-02-17 16:28:49

開發技能代碼

2019-07-16 19:00:00

Ansible配置自動化

2020-04-16 08:00:00

Ansible Vau敏感數據加密

2018-12-06 09:07:59

Ansible服務器運維

2011-01-11 11:30:00

Bandwidth C帶寬控制流量控制
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区欧美黑人喷潮水 | 成人激情视频免费观看 | 欧美一级欧美一级在线播放 | 国产成人精品午夜 | 日韩中文字幕网 | 精品一区二区三区四区视频 | 成人精品一区二区三区中文字幕 | 精品一区二区三区四区五区 | av黄色在线观看 | 欧美成人精品欧美一级 | 欧美久久一级 | 成人av一区二区三区 | 国产精品免费一区二区三区四区 | 久久久国产亚洲精品 | 国产一二三视频在线观看 | 国产 欧美 日韩 一区 | 97超碰人人草 | 久久一及片 | 欧美久久视频 | 国产黄色大片 | 午夜视频在线 | 毛片1 | 久久中文字幕电影 | 国产欧美日韩在线一区 | 国产成人精品a视频一区www | 99精品久久久久久中文字幕 | h视频免费在线观看 | 中文字幕日韩在线观看 | 在线看av网址 | 亚洲一区二区免费 | 成人三级视频 | 亚洲高清在线 | 免费国产成人av | 久久久久网站 | 懂色av一区二区三区在线播放 | 精品一区二区av | 精品自拍视频 | 日韩一级| 青娱乐一区二区 | 欧美一级一| 成人在线小视频 |