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

如何使用Ansible部署容器?

譯文
新聞 系統(tǒng)運(yùn)維
容器不可逃避,因?yàn)樗鼈兝^續(xù)在企業(yè)IT部署中唱主角。你可以將它們部署為應(yīng)用程序和服務(wù)等。

[[311607]]

【51CTO.com快譯】容器不可逃避,因?yàn)樗鼈兝^續(xù)在企業(yè)IT部署中唱主角。你可以將它們部署為應(yīng)用程序和服務(wù)等。此外,部署容器的方法與部署它們的原因一樣迥然不同:

•Docker

•Kubernetes

•Rancher

•Solaris Containers

•Rocket

•MicroK8s

•Tectonic

不一而足。但是你是否知道還有另一種部署容器的方法,這種方法可能讓遠(yuǎn)程管理員想試一試?這種方法就是通過(guò)Red Hat的開(kāi)源自動(dòng)化工具Ansible。

簡(jiǎn)單介紹一下,Ansible是一種在Linux上運(yùn)行的開(kāi)源軟件供應(yīng)、配置管理和應(yīng)用程序部署工具。Ansible含有自己的聲明性語(yǔ)言,使用的劇本(playbook)創(chuàng)建用于在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行簡(jiǎn)單或異常復(fù)雜的命令(或一組命令)的環(huán)境。

當(dāng)然,Ansible可用于部署容器。

在你深入了解之前,我要展示的不一定是最佳實(shí)踐場(chǎng)景。由于每個(gè)人的情況和需求各不相同,下面介紹的只是使用Ansible來(lái)部署容器。有更好的方法嗎?當(dāng)然。但這是否會(huì)讓你進(jìn)而可以創(chuàng)建高度靈活且可行的Ansible劇本?肯定會(huì)。

你需要什么?

你至少需要兩臺(tái)服務(wù)器,一臺(tái)服務(wù)器已安裝并運(yùn)行Ansible。我將演示Ubuntu Server 18.04的兩個(gè)實(shí)例。你還需要擁有sudo特權(quán)的用戶(hù)帳戶(hù)。最后,你需要在服務(wù)器之間建立了SSH密鑰驗(yàn)證機(jī)制。若沒(méi)有SSH密鑰驗(yàn)證,這種方法沒(méi)法使用。

以上就是你所需要的。

安裝Ansible

如果你尚未在一臺(tái)服務(wù)器上運(yùn)行Ansible,請(qǐng)按照以下步驟來(lái)安裝:

1. 登錄到將托管Ansible的Ubuntu服務(wù)器。

2. 使用命令sudo apt-add-repository ppa:ansible/ansible安裝必要的存儲(chǔ)庫(kù)。

3. 使用命令sudo apt-get update更新apt。

4. 使用命令sudo apt-get install ansible -y安裝Ansible。

5. 如有必要,使用命令sudo apt-get install python -y安裝Python解釋器。

復(fù)制你的SSH密鑰

為了使這方法奏效,你必須建立SSH密鑰驗(yàn)證機(jī)制。在A(yíng)nsible服務(wù)器上,使用以下命令創(chuàng)建SSH密鑰:

  1. ssh-keygen 

一旦創(chuàng)建了密鑰,使用以下命令將它復(fù)制到遠(yuǎn)程計(jì)算機(jī):

  1. ssh-copy-id SERVER_IP 

其中SERVER_IP是遠(yuǎn)程服務(wù)器的IP地址。

安裝Docker

接下來(lái),你要在兩臺(tái)(或所有)計(jì)算機(jī)上安裝Docker引擎。想安裝Docker引擎,請(qǐng)登錄到其中一臺(tái)服務(wù)器,并執(zhí)行以下命令:

  1. sudo apt-get install docker.io python3-docker -y 

一旦安裝完畢,使用以下命令啟動(dòng)并啟用Docker引擎:

  1. sudo systemctl start docker  
  2. sudo systemctl enable docker 

最后,使用以下命令將你的用戶(hù)添加到Docker組:

  1. sudo usermod -aG docker $USER 

為了使更改生效,請(qǐng)注銷(xiāo)并重新登錄。

一旦你在所有計(jì)算機(jī)上完成了這些步驟,就可以下一步了。

目錄結(jié)構(gòu)

現(xiàn)在,我們將創(chuàng)建必要的目錄和文件。這將在運(yùn)行Ansible的計(jì)算機(jī)上完成。登錄該計(jì)算機(jī),并執(zhí)行命令:

  1. mkdir ~/docker_project 

使用以下命令進(jìn)入到剛創(chuàng)建的目錄:

  1. cd ~/docker_project 

現(xiàn)在我們將創(chuàng)建主機(jī)文件。使用以下命令執(zhí)行此操作:

  1. nano hosts 

在該文件中,粘貼以下內(nèi)容:

  1. [webserver]  
  2. SERVER_IP  
  3. [webserver:vars]  
  4. ansible_python_interpreter=/usr/bin/python3 

其中SERVER_IP是遠(yuǎn)程服務(wù)器的IP地址。如果你有多臺(tái)服務(wù)器,該文件會(huì)是這樣子:

  1. [webserver]  
  2. SERVER_IP  
  3. SERVER2_IP  
  4. [webserver:vars]  
  5. ansible_python_interpreter=/usr/bin/python3 

保存并關(guān)閉文件。

現(xiàn)在我們將創(chuàng)建Ansible劇本。該劇本將執(zhí)行以下操作:

•安裝aptitude。

•安裝幾個(gè)依賴(lài)項(xiàng)。

•添加Docker存儲(chǔ)庫(kù)。

•安裝Docker社區(qū)版。

•安裝Docker Python模塊。

•拉取正式的Ubuntu映像。

•基于剛拉取的Ubuntu映像創(chuàng)建四個(gè)容器。

這個(gè)新文件將采用標(biāo)準(zhǔn)的YAML格式,這意味著你必須密切注意行縮進(jìn)??s進(jìn)不一致會(huì)導(dǎo)致你的劇本失敗。使用以下命令創(chuàng)建一個(gè)新文件:

  1. nano ubuntu_playbook.yml 

我們的劇本如下所示:

  1. - hosts: all</code> <code class=""> become: true</code> <code class=""> vars:</code> <code class=""> create_containers: 4</code> <code class=""> default_container_name: docker</code> <code class=""> default_container_image: ubuntu</code> <code class=""> default_container_command: sleep 1d</code> <code class=""> tasks:</code> <code class=""> - name: Install aptitude using apt</code> <code class=""> apt: name=aptitude state=latest update_cache=yes force_apt_get=yes</code> <code class=""> - name: Install required system packages</code> <code class=""> apt: name={{ item }} state=latest update_cache=yes</code> <code class=""> loop: [ 'apt-transport-https''ca-certificates''curl''software-properties-common''python3-pip''virtualenv''python3-setuptools']</code> <code class=""> - name: Add Docker GPG apt Key</code> <code class=""> apt_key:</code> <code class=""> url: https://download.docker.com/linux/ubuntu/gpg</code> <code class=""> state: present</code> <code class=""> - name: Add Docker Repository</code> <code class=""> apt_repository:</code> <code class=""> repo: deb https://download.docker.com/linux/ubuntu xenial stable</code> <code class=""> state: present</code> <code class=""> - name: Update apt and install docker-ce</code> <code class=""> apt: update_cache=yes name=docker-ce state=latest</code> <code class=""> - name: Install Docker Module for Python</code> <code class=""> pip:</code> <code class=""> name: docker</code> <code class=""> - name: Pull default Docker image</code> <code class=""> docker_image:</code> <code class=""> name: "{{ default_container_image }}"</code> <code class=""> source: pull</code> <code class=""> - name: Create default containers</code> <code class=""> docker_container:</code> <code class=""> name: "{{ default_container_name }}{{ item }}"</code> <code class=""> image: "{{ default_container_image }}"</code> <code class=""> command: "{{ default_container_command }}"</code> <code class=""> state: present</code> <code class=""> with_sequence: count={{ create_containers }} 

保存并關(guān)閉文件。顯然,你可以根據(jù)需要修改劇本,因此仔細(xì)閱讀劇本,再作相應(yīng)更改。

正如我所說(shuō),有多種方法可以處理上述任務(wù)。你在上面看到的只是其中之一。不過(guò)它很管用,正好可以看看如何使用Ansible部署容器。

運(yùn)行劇本

有了劇本,我們現(xiàn)在可以使用以下命令運(yùn)行它:

  1. ansible-playbook -i hosts ubuntu_playbook.yml --ask-become-pass 

–ask-become-pass選項(xiàng)指示Ansible要求遠(yuǎn)程用戶(hù)SSH密鑰使用sudo密碼(圖1)。一旦你輸入該密碼,按鍵盤(pán)上的回車(chē)鍵,劇本將運(yùn)行。

圖1:輸入SSH密鑰后劇本會(huì)運(yùn)行

劇本可能需要幾分鐘才能完成,這要看你的網(wǎng)絡(luò)連接和計(jì)算機(jī)的速度。完成后,登錄到遠(yuǎn)程服務(wù)器,并執(zhí)行命令:

  1. docker ps -a 

你應(yīng)該看到新容器已經(jīng)部署(圖2)。

圖2.用GIMP創(chuàng)建

這就是使用Ansible部署容器的全部?jī)?nèi)容。有更好的方法可以做到這一點(diǎn)嗎?當(dāng)然有。但如果你已經(jīng)在A(yíng)nsible方面有投入,何不將容器的部署添加到你越來(lái)越多的劇本中?

原文標(biāo)題:How to Deploy a Container Using Ansible,作者:Jack Wallen

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:張燕妮 來(lái)源: 51CTO
相關(guān)推薦

2016-10-17 13:33:26

原子主機(jī)AnsibleCockpit

2019-07-01 09:33:58

DockerNginx操作系統(tǒng)

2021-05-17 12:54:04

AnsiblePodman開(kāi)源

2017-06-09 14:22:31

AnsibleTiDB分布式數(shù)據(jù)庫(kù)

2019-10-30 12:00:02

Ansible容器與云容器鏡像

2021-04-16 08:00:00

容器Docker工具

2020-10-10 20:30:05

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

2023-12-11 18:15:46

AnsibleMinikubeKubernetes

2020-01-02 19:00:05

AnsibleGitHubGitLab

2016-10-24 09:09:48

AnsibleVagrantFedora

2021-01-26 06:58:03

AnsibleCeph集群運(yùn)維

2020-10-29 10:17:24

AnsibleKubernetes容器編排自動(dòng)化

2017-02-22 13:53:16

2019-10-30 14:47:05

工具代碼開(kāi)發(fā)

2020-04-16 08:00:00

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

2021-12-21 21:00:23

Ansible樹(shù)莓派語(yǔ)音助手

2016-12-01 13:37:42

OpenStack MDocker Swar容器

2022-07-29 15:19:27

Dockersudo權(quán)限

2017-12-18 09:02:42

Red Hat SysAnsible集成

2018-02-23 15:15:31

UbuntuAnsibleAmazon EC2
點(diǎn)贊
收藏

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