在上一篇部署云资源中,我们讲到IBM Cloud Schematics可以进行云资源的部署,软件安装和配置,那我们接下来就讲下如何在Schematics中调用Ansible在虚拟机系统里面进行软件的安装和配置,来达到自动化的过程。
在参考本篇文章进行试验之前,建议阅读使用Schematics部署云资源一文。(https://blog.csdn.net/koolincn/article/details/121999643)
首先我们需要编写Ansible play book脚本,这里我将基于之前Schematics交付的资源,在两个虚拟机(经典基础架构下的,以及VPC环境下的)上进行相关软件包的安装,然后搭建一个简易的两层应用(WEB+DB)。由于IBM的经典架构下的虚拟机会赠送一定数量的免费外网流量,所以我们选择用经典基础架构下的虚拟机作为对外接收请求的WEB服务器,使用VPC环境下的虚拟机作为后端的数据库服务器,WEB服务器与数据库服务器的通信走IBM的内网进行,一是安全,而是没有费用产生。(在本实验中,我们WEB和DB的通信还是走公网的形式,原因是因为VPC环境下的虚拟机与经典基础架构下的虚拟机走IBM内网通信的话,需要配置交换网关[Transit Gateway],并且启用该账号的VRF功能,本账号由于是测试账号,没有开通VRF)
我们还是先来看下我们的Ansible play book脚本。
README.md,roles目录以及site.yaml,README文件给整个代码以说明,site.yaml文件里面定义了执行Ansible脚本时不同的role。roles目录下是不同角色所对应需要执行的操作。
在DB role下,我们将执行安装和配置mysql,启动mysql服务等操作,在WEB role下面我们会安装和配置http,php以及相关的package。
下面我们来看下具体的yaml文件的内容,主目录下site.yaml的内容如下:
---
# This playbook deploys the LAMP application stack in this site.
- name: deploy and configure the webservers and application
hosts: webserver
remote_user: root
roles:
- web
- name: deploy MySQL and configure the databases
hosts: dbserver
remote_user: root
roles:
- db
- name: Verify Installation
hosts: webserver
tasks:
- name: Query index page for application
uri:
url: http://localhost/index.php
return_content: yes
register: Output
- name: Display Index page content
ansible.builtin.debug:
var: Output
对应的role下面的task下面的main.yaml内容,我们先看DB role下面的:
roles/db/tasks/main.yml
---
# This playbook contains common plays that will be run on all nodes.
- n