摘要:最近,花了很大的興趣在組合使用和上。步驟如下從那里,我們可以使用已經(jīng)上傳到的角色。我們的像如下簡單,在與你的一起的一個文件名字為因此,像這樣構建現(xiàn)在讀者可以非常容易的適應各種方法。檢出文件可能被忽略,并且被替換成命令獲得更加大的效率。
最近,花了很大的興趣在組合使用 Ansible 和 Docker上。所以我想這可以很好的描述一些技巧。
開始,安裝 Docker。如果你已經(jīng)安裝了 Ansible 。 Paul Durivage 已經(jīng)編寫了一個在 Ubuntu 出色的安裝 Docker 的工具,即使在內(nèi)部實現(xiàn),它也比官方安裝指令容易。
如果我們在 Ubuntu 13.10 上啟動,并且只從開發(fā)分支上運行 Ansible,而不安裝它。步驟如下:
apt-get update apt-get install git python-yaml python-jinja2 python-pycurl git clone https://github.com/ansible/ansible.git cd ansible source ./hacking/env-setup
從那里,我們可以使用 Paul 已經(jīng)上傳到 Galaxy 的 docker_ubuntu 角色。因此我們可以使用一個簡單的 CLI 調(diào)用下載它。
ansible-galaxy install angstwad.docker_ubuntu
并且通過在 /etc/ansible/hosts 創(chuàng)建一個 stub inventory 文件,寫一個簡單的 playbook 來使用它。
[local] localhost
并且一個非常簡單的 playbook 調(diào)用它,/tmp/docker.yml :
- hosts:local connection: local roles: - angstwad.docker_ubuntu
現(xiàn)在我們將調(diào)用 Ansible 來啟動 Docker:
ansible-playbook /tmp/docker.yml docker pull ubuntu
現(xiàn)在,一切都變得非常簡單。但是讓我感興趣的部分是如何使用 Ansible 用最簡單的方式來構建 docker-files 。我們一直喜歡的一件事就是自動化的便攜式描述。并且使得比開發(fā) bash 更加有效率。
這里有一個在 Docker 文件中使用 Ansible 的簡單例子,因此我們可以在 Ansible 中編寫復雜的自動化。而不是編寫一份 Docker 命令以及 shell 腳本的大雜燴。允許我們的應用部署就像把他們部署在經(jīng)典的虛擬服務器上。
我們的 Dockerfile 像如下簡單,在 /tmp/build/Dockerfile:
FROM ubuntu MAINTAINER yourname RUN apt-get -y update RUN apt-get install -y python-yaml python-jinja2 git RUN git clone http://github.com/ansible/ansible.git /tmp/ansible WORKDIR /tmp/ansible ENV PATH /tmp/ansible/bin:/sbin:/usr/sbin:/usr/bin ENV ANSIBLE_LIBRARY /tmp/ansible/library ENV PYTHONPATH /tmp/ansible/lib:$PYTHON_PATH RUN git clone http://github.com/yourusername/yourrepo.git /tmp/example ADD inventory /etc/ansible/hosts WORKDIR /tmp/examples RUN ansible-playbook site.yml -c local EXPOSE 22 3000 ENTRYPOINT [“/usr/bin/foo”]
與你的 Dockerfile 一起的一個文件名字為 inventory:
[local] localhost
因此,像這樣構建:
docker build .
現(xiàn)在讀者可以非常容易的適應各種方法。但是最明顯的事情或許是打開不同的端口 或者是運行不同的 entry point 。git 檢出文件可能被忽略,并且被替換成 "ADD" 命令獲得更加大的效率。
這里最妙的是哪部分? 是你的 playbook 能干任何事情,并且做任何重的事情。
下一步要做的更加具有邏輯的事情是用 Docker 分發(fā)你的容器,這個可以通過在 Ansbible 核心的 Docker 模塊來實現(xiàn)。最好的經(jīng)驗,我們建議使用開發(fā)分支的 Ansible 預覽版本,它支持最新版本的 Docker。
在這里看 Docker 模塊的文件以及能力 See the Docker module documentation and capabilities here.
非常感謝 Cove Schneider 和 Pavel Antonov 開發(fā)的這個模塊。
因此,結合 Ansbile 和 Docker ,只需要稍加挖掘,你能看到,你不僅能使用 Ansbile 管理你的容器構建進程,而且可以決定什么容器應該運行在哪里。
我希望這篇文章能幫助在探索文件的構建方面使事情更加簡單。如果你想少一點手工組合,你也可以像這樣組合 Packer 和 Docker。
Related News注: Packer 是一個通過一個源文件跨平臺構建同樣鏡像的工具
Deploying Highly Available OpenShift Origin Clusters | Ansible Me A Sandwich | Listen To Your Servers Talk | Fixing Heartbleed With Ansible | Orchestration, You Keep Using That Word
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28099.html
摘要:從到到的部署經(jīng)驗工作中,除了開發(fā)功能,還負責系統(tǒng)的部署工作。我從頻繁的部署工作中,逐漸找到了一些偷懶的方法。同時在構建成功后執(zhí)行我們輸入的命令,來達到自動化部署的工作。缺點也是有的,很難保證對方部署的環(huán)境是最新的。 從Docker 到Jenkins 到Ansible的部署經(jīng)驗 工作中,除了開發(fā)功能,還負責系統(tǒng)的部署工作。我從頻繁的部署工作中,逐漸找到了一些偷懶的方法。從傳統(tǒng)的Java ...
摘要:或許你的第一次微服務體驗,就從本文開始在本文中,和等紛紛亮相,并配有詳細的代碼說明。該角色與本地網(wǎng)絡及的配置設置相關。由于會在虛擬機初始化過程中自動執(zhí)行配置任務,因此惟一的解決辦法就是將相關內(nèi)容提取至單獨的劇本當中 這是一篇溫和有趣的技術文章,如果你初識Docker,對微服務充滿興趣,不妨一讀。或許你的第一次微服務體驗,就從本文開始…… 在本文中,Mesos、Zookeeper、Ma...
摘要:集群三步安裝構建生產(chǎn)環(huán)境可用的高可用集群項目地址特性支持任意節(jié)點的集群自動構建,且集群使用安全證書,通過方式啟動,這樣可以通過監(jiān)控來監(jiān)控集群健康狀態(tài)支持多節(jié)點,允許任意一臺宕機集群功能不受影響使用集群,配置安全證書,網(wǎng)絡管控數(shù)據(jù)無單點故障包 kubernetes集群三步安裝 構建生產(chǎn)環(huán)境可用的高可用kubernetes集群 | sealos項目地址 特性 [x] 支持任意節(jié)點的et...
摘要:年月日,發(fā)布版本,本次版本更新帶來了全新的應用市場交付體驗,并對源碼類服務的運行機制架構服務管理等方面做了大量優(yōu)化。發(fā)布社區(qū)公開應用。我們正在進行的是將應用轉(zhuǎn)化為應用存放于應用市場中供用戶直接安裝使用。 2019年7月8日,Rainbond發(fā)布5.1.5版本,本次版本更新帶來了全新的應用市場交付Pipeline體驗,并對源碼類服務的運行機制、ServiceMesh架構、服務管理等方面做...
閱讀 2689·2021-10-22 09:55
閱讀 2018·2021-09-27 13:35
閱讀 1272·2021-08-24 10:02
閱讀 1494·2019-08-30 15:55
閱讀 1205·2019-08-30 14:13
閱讀 3478·2019-08-30 13:57
閱讀 1980·2019-08-30 11:07
閱讀 2456·2019-08-29 17:12