使用Ansible OpenStack SDK创建OpenStack云主机
安装OpenStack SDK
pip install openstacksdk
安装Ansible
pip install ansible
创建一个Ansible playbook文件,例如 create_instance.yml
,并添加以下内容:
- name: Create OpenStack instance
hosts: localhost
gather_facts: no
vars:
instance_name: "my-instance"
flavor: "ecs.2C.4096MB.40GB"
image: "Centos7.6_1810_x64"
network: "provider"
key_name: "wanghongwei public key"
security_groups: "default"
tasks:
- name: Create an instance
os_server:
state: present
auth:
auth_url: http://<auth_url>:<auth_port>/v3
username: <username>
password: <password>
project_name: <project_name>
project_domain_name: <project_domain_name>
user_domain_name: <user_domain_name>
wait: true
name: "{{ instance_name }}"
flavor: "{{ flavor }}"
image: "{{ image }}"
network: "{{ network }}"
key_name: "{{ key_name }}"
security_groups: "{{ security_groups }}"
timeout: 200
register: instance
- name: Print instance details
debug:
var: instance
- name: Set fact for instance IP
set_fact:
instance_ip: "{{ instance.server.public_v4 }}"
- name: Print instance IP
debug:
var: instance_ip
- name: Wait for SSH to be available
wait_for:
host: "{{ instance_ip }}"
port: 22
delay: 5
timeout: 600
- name: Install nginx on instance
yum:
name: "{{ item }}"
state: present
loop:
- epel-release
- nginx
delegate_to: "{{ instance_ip }}"
- name: Start nginx on instance
service:
name: nginx
state: started
delegate_to: "{{ instance_ip }}"
- name: Open port 80
firewalld:
port: 80/tcp
permanent: true
state: enabled
immediate: true
delegate_to: "{{ instance_ip }}"
替换 <auth_url>
、<auth_port>
、<username>
、<password>
、<project_name>
、<project_domain_name>
、<user_domain_name>
为您的OpenStack环境信息和云主机配置信息。
运行Ansible playbook:
ansible-playbook create_instance.yml
等待Ansible playbook执行完成,您将在OpenStack上创建一台云主机。
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。
分类:
Ansible AWX
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2021-05-19 Elasticsearch集群部署及HEAD插件安装