首页 存档 技术 查看内容

Ansible 起步指南

2018-3-30 13:00 |来自: 互联网 299 0

摘要: 这是一篇关于 Ansible 的速成课程,你可以用作小项目的模板,或者帮你深入了解这个神奇的工具。阅读了本指南之后,你将对自动化服务器配置、部署等有足够的了解。-- JOSE HIDALGO 本文导航 -Ansible 是什么,为什么 ...

这是一篇关于 Ansible 的速成课程,你可以用作小项目的模板,或者帮你深入了解这个神奇的工具。阅读了本指南之后,你将对自动化服务器配置、部署等有足够的了解。
-- JOSE HIDALGO

编译自:https://gorillalogic.com/blog/getting-started-with-ansible/
作者: JOSE HIDALGO
译者: geekpi


这是一篇关于 Ansible 的速成课程,你可以用作小项目的模板,或者帮你深入了解这个神奇的工具。阅读了本指南之后,你将对自动化服务器配置、部署等有足够的了解。

Ansible 是什么,为什么你该了解?

Ansible 简单的说是一个配置管理系统configuration management system。你只需要可以使用 ssh 访问你的服务器或设备就行。它也不同于其他工具,因为它使用推送的方式,而不是像 puppet 或 chef 那样使用拉取的方式。你可以将代码部署到任意数量的服务器上,配置网络设备或在基础架构中自动执行任何操作。

前置要求

假设你使用 Mac 或 Linux 作为你的工作站,Ubuntu Trusty 作为你的服务器,并有一些安装软件包的经验。此外,你的计算机上将需要以下软件。所以,如果你还没有它们,请先安装:

情景

我们将模拟 2 个连接到 MySQL 数据库的 Web 应用程序服务器。Web 应用程序使用 Rails 5 和 Puma。

准备

Vagrantfile

为这个项目创建一个文件夹,并将下面的内容保存到名为Vagrantfile的文件。

  1. VMs = [

  2. [ "web1", "10.1.1.11"],

  3. [ "web2", "10.1.1.12"],

  4. [ "dbserver", "10.1.1.21"],

  5. ]

  6. Vagrant.configure(2) do |config|

  7. VMs.each { |vm|

  8. config.vm.define vm[0] do |box|

  9. box.vm.box = "ubuntu/trusty64"

  10. box.vm.network "private_network", ip: vm[1]

  11. box.vm.hostname = vm[0]

  12. box.vm.provider "virtualbox" do |vb|

  13. vb.memory = "512"

  14. end

  15. end

  16. }

  17. end

配置你的虚拟网络

我们希望我们的虚拟机能互相交互,但不要让流量流出到真实的网络,所以我们将在 Virtualbox 中创建一个仅主机(HOST-Only)的网络适配器。

  1. 打开 Virtualbox

  2. 转到 Preferences

  3. 转到 Network

  4. 单击 Host-Only

  5. 单击添加网络

  6. 单击 Adapter

  7. 将 IPv4 设置为10.1.1.1,IPv4 网络掩码:255.255.255.0

  8. 单击 “OK”

测试虚拟机及虚拟网络

在终端中,在存放Vagrantfile的项目目录中,输入下面的命令:

  1. vagrant up

它会创建你的虚拟机,因此会花费一会时间。输入下面的命令并验证输出内容以检查是否已经工作:

  1. $ vagrant status

  2. Current machine states:

  3. web1 running (virtualbox)

  4. web2 running (virtualbox)

  5. master running (virtualbox)

  6. This environment represents multiple VMs. The VMs are all listed

  7. above with their current state. For more information about a specific

  8. VM, run `vagrant status NAME`.

现在使用vagrant的用户名和密码 ,按Vagrantfile中的 IP 登录其中一台虚拟机,这将验证虚拟机并将它们的密钥添加到你的已知主机(known_hosts)文件中。

  1. ssh vagrant@10.1.1.11 # password is `vagrant`

  2. ssh vagrant@10.1.1.12

  3. ssh vagrant@10.1.1.21

恭喜你!现在你已经有可以实验的服务器了。下面的剩下的部分!

安装 Ansible

对于 Mac 用户:

  1. $ brew install ansible

对于 Ubuntu 用户:

  1. $ sudo apt install ansible

确保你使用了ansible 最近的版本 2.1 或者更高的版本:

  1. $ ansible --version

  2. ansible 2.1.1.0

清单

Ansible 使用清单文件来了解要使用的服务器,以及如何将它们分组以并行执行任务。让我们为这个项目创建我们的清单文件inventory,并将它放在与Vagrantfile相同的文件夹中:

  1. [all:children]

  2. webs

  3. db

  4. [all:vars]

  5. ansible_user=vagrant

  6. ansible_ssh_pass=vagrant

  7. [webs]

  8. web1 ansible_host=10.1.1.11

  9. web2 ansible_host=10.1.1.12

  10. [db]

  11. dbserver ansible_host=10.1.1.21

  • [all:children]定义一个组的组( 声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部