这些是你需要注意的重要文件 。
- inventory-test.yaml:连接到节点的清单文件
- playbook.yaml:Vagrant 供应者调用的用于配置节点的剧本文件
- `Vagrantfile':Vagrant 用来部署环境的文件
- Vagrant 密钥文件:连接实验室环境中各节点的 Vagrant 密钥
部署你的实验室环境首先,克隆这个 GitHub 仓库 中的代码:
$ git clone https://github.com/mikecali/ansible-labs-101.gitCloning into 'ansible-labs-101'...remote: Enumerating objects: 15, done.remote: Counting objects: 100% (15/15), done.remote: Compressing objects: 100% (13/13), done.remote: Total 15 (delta 2), reused 10 (delta 0), pack-reused 0Unpacking objects: 100% (15/15), 6.82 KiB | 634.00 KiB/s, done.
接下来,将你的目录改为 vagrant-session-2,并查看其内容:$ lsBootstrap-node.sh inventory keys playbook.yml README.md Vagrantfile
现在你已经拥有了实验室环境所需的所有工件和配置文件 。要部署环境,请运行:$ vagrant up
只要有一个像样的网络连接,只需要 20 分钟左右就可以得到一个运行环境:$ vagrant upBringing machine 'web1.demo.com' up with 'virtualbox' provider...Bringing machine 'web2.demo.com' up with 'virtualbox' provider...Bringing machine 'ansible-host' up with 'virtualbox' provider...==> web1.demo.com: Importing base box 'centos/8'...==> web1.demo.com: Matching MAC address for NAT networking...==> web1.demo.com: Checking if box 'centos/8' version '1905.1' is up to date...==> web1.demo.com: Setting the name of the VM: ansible-labs_web1democom_1606434176593_70913==> web1.demo.com: Clearing any previously set network interfaces...==> web1.demo.com: Preparing network interfaces based on configuration... web1.demo.com: Adapter 1: nat web1.demo.com: Adapter 2: hostonly==> web1.demo.com: Forwarding ports... web1.demo.com: 22 (guest) => 2222 (host) (adapter 1)==> web1.demo.com: Running 'pre-boot' VM customizations...==> web1.demo.com: Booting VM...==> web1.demo.com: Waiting for machine to boot. This may take a few minutes... web1.demo.com: SSH address: 127.0.0.1:2222 web1.demo.com: SSH username: vagrant web1.demo.com: SSH auth method: private key[...]
一旦该剧本执行完成,你会看到这样的输出:PLAY RECAP *********************************Ansible-host : ok=20 changed=11 unreachable=0 failed=0 skipped=0 rescued=0 ignored=3Real 18m14.288sUser 2m26.978sSys 0m26.849s
确认所有虚拟机都在运行:$ vagrant statusCurrent machine states:Web1.demo.com running (virtualbox)Web2.demo.com running (virtualbox)ansible-host running (virtualbox)[...]
你可以通过登录其中一个虚拟机进一步调查 。访问 ansible-host:> vagrant ssh ansible-hostActivate the web console with: systemctl enable --now cockpit.socketLast login: Thu Nov 26 12:21:23 2020 from 10.0.2.2[vagrant@ansible-host ~] uptime16:46:42 up 1:24, 1 user, load average: 0.00, 0.01, 0.04
最后,你可以使用 Ansible 模块来 ping 你创建的其他节点:[vagrant@ansible-host]$ ansible -i inventory-test.yaml webservers -m ping -u vagrant192.168.29.2 | SUCCESS => { "Ansible-facts": { "Discovered_interpreter_Python": "/usr/libexec/platform-python" }, "Changed": false; "Ping": "pong"}[...]
清理运行如下命令来清理环境:$ vagrant destroy [vagrant machine name]
你的输出会像这样:文章插图
Output from cleaning up environment
有创意的学习在自己的实验室里利用自己的时间学习 Ansible 这样的软件是一个好习惯,但由于受到无法控制的限制,可能会很困难 。
有时候,你需要发挥创意,找到另一种方法 。在开源社区中,你可以选择很多方案;我们选择这些工具的主要原因之一是,它们是许多人常用和熟悉的 。
另外,请注意,这些剧本并没有按照我的要求进行优化 。请随时改进它们,并在评论中分享你的工作 。
推荐阅读
- 康熙皇帝被称为什么 康熙为什么是一个伟大的皇帝
- 光武帝刘秀与汉武帝的关系 为什么刘秀建立的汉朝为东汉
- 画大饼什么意思?
- 产前抑郁症的症状
- 康乾盛世是一个什么的时代 康乾盛世时期的西方国家
- 栀子金花丸
- 《聊斋志异》中比较恐怖的故事 请介绍一个聊斋志异中你印象深刻的故事
- 武则天发明的是哪一个字 武则天创造的十八个字
- 「算法」如何实现一个简易计算器
- 秦国第一个丞相王绾 汉武帝老师卫绾