使用salt-cloud创建openstack虚拟机
salt-cloud也是基于openstack来做的,它可以支持多种云的使用。比如:Aliyun、Azure、DigitalOcean、EC2、Google Compute Engine、HP Cloud、OpenStack、等等
安装相关组件和依赖包
[root@linux-node1 ~]# yum -y install salt-master salt-minion salt-cloud python-libcloud
修改配置文件
[root@linux-node1 ~]# cd /etc/salt/cloud.providers.d/
[root@linux-node1 cloud.providers.d]# cat openstack.conf
my-openstack-config:
# Set the location of the salt-master
#
minion:
master: 192.168.56.11 # Configure the OpenStack driver
#
identity_url: http://192.168.56.11:5000/v2.0/tokens
compute_name: nova
protocol: ipv4 compute_region: RegionOne
# 注意这里的类型可以通过openstack endpoint list 查看到 # Configure Openstack authentication credentials
#
user: demo
password: demo
# tenant is the project name
tenant: demo
# 项目名称 provider: openstack # skip SSL certificate validation (default false)
insecure: false
配置saltstack
[root@linux-node1 cloud.providers.d]# systemctl start salt-master
[root@linux-node1 cloud.providers.d]# vim /etc/salt/minion
master: 192.168.56.12
[root@linux-node1 cloud.providers.d]# systemctl start salt-minion
[root@linux-node1 cloud.providers.d]# salt-key
Accepted Keys:
Denied Keys:
Unaccepted Keys:
linux-node1.oldboyedu.com
Rejected Keys:
[root@linux-node1 cloud.providers.d]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
linux-node1.oldboyedu.com
Proceed? [n/Y] y
Key for minion linux-node1.oldboyedu.com accepted.
[root@linux-node1 cloud.providers.d]# salt '*' test.ping
linux-node1.oldboyedu.com:
True
测试salt-cloud能否连接上openstack
###### 列出所有云主机的镜像
[root@linux-node1 cloud.providers.d]# salt-cloud --list-images openstack -l debug
...........................
............................
...........................
my-openstack-config:
----------
openstack:
----------
cirros:
----------
driver:
extra:
----------
created:
2015-12-23T16:47:33Z
metadata:
----------
minDisk:
0
minRam:
0
progress:
100
serverId:
None
status:
ACTIVE
updated:
2015-12-23T16:47:33Z
get_uuid:
id:
90f1b52f-25dd-43f1-9f78-4d4de67aabfe
name:
cirros
uuid:
b22ad8d988b5925dc328cdc21a84a7670fbda0c4
##### 列出所有云主机的类型
[root@linux-node1 cloud.providers.d]# salt-cloud --list-size openstack -l debug
编写虚拟机的创建文件
[root@linux-node1 cloud.profiles.d]# pwd
/etc/salt/cloud.profiles.d [root@linux-node1 cloud.profiles.d]# cat web.conf
web-node:
provider: my-openstack-config # /etc/salt/cloud.providers.d/openstack.conf的ID
size: m1.tiny # 云主机的类型
image: cirros # 使用的镜像名称
ssh_key_file: /root/.ssh/id_rsa # 密钥
ssh_key_name: mykey # openstack页面中,访问安全里面找密钥对
ssh_interface: private_ips
networks: # 设置使用的网络,可以从openstack页面的网络板块中找
- fixed:
- 8fb1d37e-414f-4f5d-89f7-8d20fa8fabed
minion:
master: 192.168.56.11
grains:
role: webserver
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[root@linux-node1 cloud.profiles.d]# salt-cloud -p web-node node1 -l debug
########################################################################################################
使用salt-cloud创建openstack虚拟机
众所周知,saltstack有三大功能:远程执行、配置管理、云管理。其中的云管理就是通过salt-cloud完成的。salt-cloud能够管理很多云环境(公有云、私有云),连大名鼎鼎的阿里云也可以通过salt-cloud来创建虚拟机哦。
本次主要讲解使用salt-cloud管理openstack(L版)私有云来创建虚拟机。(前提openstack环境运行正常,能正常创建虚拟机)
1、 安装saltstack
yum install salt-master salt-minion salt-cloud -y
安装依赖包:
yum install python-libcloud -y
2、 创建provider配置文件,告诉salt-cloud如何连接openstack(yaml语法,注意空格)
[root@linux-node1 cloud.providers.d]# pwd
/etc/salt/cloud.providers.d
[root@linux-node1 cloud.providers.d]# vim openstack.conf
myopenstack:
# Set the location of the salt-master
#
minion:
master: 192.168.56.11
# Configure the OpenStack driver
#
identity_url: http://192.168.56.11:5000/v2.0/tokens
compute_name: nova
protocol: ipv4
compute_region: RegionOne
# Configure Openstack authentication credentials
#
user: demo
password: demo
# tenant is the project name
tenant: demo provider: openstack
# skip SSL certificate validation (default false)
insecure: false
3 、检查配置:
语法:
salt-cloud --list-locations <provider_name> 查看可用的区域
salt-cloud --list-p_w_picpaths <provider_name> 查看可用的镜像
salt-cloud --list-sizes <provider_name> 查看可用的虚拟机大小
例:查看可用的镜像
salt-cloud --list-p_w_picpaths myopenstack -l debug
myopenstack:provider配置文件中定义的ID
-l debug :开启debug模式,方便定位和调试故障。
[root@linux-node1 ~]# salt-cloud --list-p_w_picpaths myopenstack -l debug
[DEBUG ] Reading configuration from /etc/salt/cloud
[DEBUG ] Reading configuration from /etc/salt/master
[DEBUG ] Using cached minion ID from /etc/salt/minion_id: linux-node1.example.com
[DEBUG ] Missing configuration file: /etc/salt/cloud.providers
[DEBUG ] Including configuration from '/etc/salt/cloud.providers.d/openstack.conf'
[DEBUG ] Reading configuration from /etc/salt/cloud.providers.d/openstack.conf
[DEBUG ] Missing configuration file: /etc/salt/cloud.profiles
[DEBUG ] Configuration file path: /etc/salt/cloud
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[INFO ] salt-cloud starting
[WARNING ] /usr/lib/python2.7/site-packages/novaclient/v1_1/__init__.py:30: UserWarning: Module novaclient.v1_1 is deprecated (taken as a basis for novaclient.v2). The preferable way to get client class or object you can find in novaclient.client module.
warnings.warn("Module novaclient.v1_1 is deprecated (taken as a basis for "
[DEBUG ] Could not LazyLoad parallels.avail_sizes [DEBUG ] LazyLoaded parallels.avail_locations
[DEBUG ] LazyLoaded proxmox.avail_sizes
[DEBUG ] Could not LazyLoad saltify.destroy
[DEBUG ] Could not LazyLoad saltify.avail_sizes
[DEBUG ] Could not LazyLoad saltify.avail_p_w_picpaths
[DEBUG ] Could not LazyLoad saltify.avail_locations
[DEBUG ] LazyLoaded rackspace.reboot
[DEBUG ] Could not LazyLoad openstack.list_locations
[DEBUG ] LazyLoaded rackspace.list_locations
[DEBUG ] OpenStack authenticating using password
[DEBUG ] LazyLoaded nested.output
myopenstack:
----------
openstack:
----------
cirros:
----------
driver:
extra:
----------
created:
2015-12-13T14:24:05Z
metadata:
----------
minDisk:
0 minRam:
0
progress:
100
serverId:
None
status:
ACTIVE
updated:
2015-12-13T14:24:05Z
get_uuid:
id:
c503fb83-7d52-40e9-b1cc-4773e650986e
name:
cirros
uuid:
2986f30365f55599f838f656a51acdaec1fa81a2
new:
----------
driver:
extra:
----------
created:
2015-12-25T09:17:50Z
metadata:
----------
minDisk: 0
minRam:
0
progress:
100
serverId:
None
status:
ACTIVE
updated:
2015-12-25T09:17:57Z
get_uuid:
id:
fdd664b3-ebf2-4904-815f-0d1cdf9955d4
name:
new
uuid:
9f4f8a437ebc8123c1a8725156ee91566928d9f0
可以看到,当前有两个可用的镜像,cirros 和new ,并且可以看到更过镜像的信息。
4、 编写profile配置文件,告诉salt-cloud创建虚拟机的细节,后期创建虚拟机时只需要调用该名字即可。
[root@linux-node1 cloud.profiles.d]# vim openstack_web.conf
web-node:
provider: myopenstack
size: m1.tiny
p_w_picpath: new
ssh_key_file: /root/.ssh/id_rsa
ssh_key_name: mykey
ssh_interface: private_ips
networks:
- fixed:
- 2c4c9edc-dbb8-467c-bc67-a2c6ff23d885
minion:
master: 192.168.56.11
grains:
role: webserver
5 、创建虚拟机
[root@linux-node1 cloud.profiles.d]# salt-cloud -p web-node test -l debug
-p 指定profile中虚拟机ID名称
6 、查看验证:
[root@linux-node1 ~]# nova list
--------------------+------+--------+------------+-------------+---------------------+
| ID | Name | Status | Task State | Power State | Networks |
+-------------------+------+--------+------------+-------------+---------------------+
| b4035529-6cd7-4b9b-a6e9-c63d5bfb2d4b | test | ACTIVE | - | Running | flat=192.168.56.118 |
+-------------------+------+--------+------------+-------------+---------------------+
通过上面的配置文件,salt-cloud不仅能够创建虚拟机,还能够在虚拟机里安装salt-minion,
并自动添加到salt-master认证里面去(还设置了一个grains哦,很方便吧)
############################################################################################################3
官方手册: https://docs.saltstack.com/en/latest/topics/cloud/openstack.html
安装环境:
172.16.1.211 salt-master服务器
172.16.1.240 openstack控制节点
ps: 下面都在salt-master操作
1.安装插件:
yum install salt-cloud python-libcloud
2.创建salt-cloud配置文件:
mkdir /etc/salt/cloud.providers.d/
vim /etc/salt/cloud.providers.d/openstack.conf
my-openstack-config: minion:
master: 172.16.1.211 identity_url: http://172.16.1.240:5000/v2.0/tokens
compute_name: nova
protocol: ipv4 compute_region: RegionOne user: demo
password: demo tenant: demo driver: openstack
provider: openstack insecure: false
3.查看镜像列表:
salt-cloud --list-images openstack #查看镜像列表
salt-cloud --list-size openstack #查看云主机类型
4.创建Salt-cloud虚拟机模板文件:
vim /etc/salt/cloud.profiles.d/web.conf
web-node: #虚拟机模板名称
provider: my-openstack-config #前面配置文件定义的
size: m1.tiny #云主机类型
image: cirros #镜像名称
ssh_key_file: /root/.ssh/id_rsa #公钥文件
ssh_key_name: mykey #密钥对名称
ssh_interface: private_ips
networks:
- fixed:
- 69200e49-0f8b-47b6-9bb5-2db9bca9a393 #网络的ID
minion: #下面是自动给虚拟机安装salt-minion并配置
master: 172.16.1.211
grains:
role: webserver-01
4.通过Salt-cloud创建Openstack虚拟机:
salt-cloud -p web-node web-test1 -l debug # -p: 虚拟机模板名称
# web-test1: 创建虚拟机的名称
# -l debug: 打印debug
使用salt-cloud创建openstack虚拟机的更多相关文章
- 如何使用API创建OpenStack虚拟机?
在安装时OpenStack会加载配置信息.有不同的虚拟机模板而且与在Amazon EC2以及其他平台上看到的完全一样.这些配置是内存.vCPU.磁盘容量等的组合,定义了虚拟机的大小及容量.可以使用如下 ...
- OpenStack虚拟机创建过程中镜像格式的的变化过程
Glance用来作为独立的大规模镜像查找服务,当它与Nova和Swift配合使用时,就为OpenStack提供了虚拟机镜像的查找服务,像所有的OpenStack项目一样,遵循以下设计思想: 基于组件的 ...
- 云计算---记一次黑客攻击openstack创建的虚拟机
一:问题定位 现象: 近期发现有几台openstack云主机被修改密码并被肉鸡. 黑客操作日志: -- :: ##### root tty1 : #### -- :: top -- :: ##### ...
- VMware 接入 Openstack — 使用 Openstack 创建 vCenter 虚拟机
目录 目录 软件环境 前言 Openstack 接口驱动 使用 KVM 在 Compute Node 上创建虚拟机的流程 使用 VCDirver 在 vCenter 上创建虚拟机的流程 配置 vCen ...
- 【OpenStack 虚拟机初始化user-data & Cloud-init】
示例: import httplib import json import base64 tenant_id='xxx' token='xxx' compute_host="xxx" ...
- OpenStack虚拟机状态
OpenStack创建一个虚拟机,涉及到三种状态,vm_state,task_state和power_state. 先总结几点: 电源状态(power_state):是hypervisor的状态,从计 ...
- OpenStack虚拟机冷迁移与热迁移
一.虚拟机迁移分析 openstacvk虚拟机迁移分为冷迁移和热迁移两种方式. 1.1冷迁移: 冷迁移(cold migration),也叫静态迁移.关闭电源的虚拟机进行迁移.通过冷迁移,可以选择将关 ...
- 使用 Azure CLI 创建 Windows 虚拟机
Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍如何使用 Azure CLI 部署运行 Windows Server 2016 的虚拟机. 部署完成后,我们连接到服 ...
- 使用 Azure CLI 创建 Linux 虚拟机
Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍了如何使用 Azure CLI 部署运行 Ubuntu 服务器的虚拟机. 服务器部署以后,将创建 SSH 连接,并且 ...
随机推荐
- 关于设备控制器和 I/O 通道的理解
设备控制器 设备控制器是CPU 与 I/O 设备之间的接口,它接收 CPU 发来的命令,去控制 I/O 设备工作,使 CPU 从繁杂的设备控制事务中解放出来. 当 CPU 要操作 I/O 设备时,首先 ...
- 开源绘画应用 Pinta 已移植到GTK 3和.NET 6
Pinta 是一款开源绘画应用,适用于 Linux.Windows 和 macOS.你可以用它来进行自由手绘/素描.你也可以用它在现有的图片上添加箭头.方框.文字等. 年初发布了 Pinta 2.0. ...
- 60天shell脚本计划-8/12-渐入佳境
--作者:飞翔的小胖猪 --创建时间:2021年3月3日 --修改时间:2021年3月7日 说明 每日上传更新一个shell脚本,周期为60天.如有需求的读者可根据自己实际情况选用合适的脚本,也可在评 ...
- spring 核心容器api
spring api : https://docs.spring.io/spring-framework/docs/current/javadoc-api/ BeanFactory 才是 Spring ...
- Qt:QThread
0.说明 QThread提供了一种与平台无关的线程管理方法. 一个QThread对象管理一个线程.QThread通过run()方法启动线程.默认情况下,run()方法通过exec()启动一个事件循环, ...
- 路径修改后cmd命令行窗口仍然没有变化的原因
修改环境变量后,要重启cmd再输入才有用
- Java应用层数据链路追踪(附优雅打印日志姿势)
我是3y,一年CRUD经验用十年的markdown程序员常年被誉为优质八股文选手 今天来聊些大家都用得上的东西:数据链路追踪.之前引入了系统的监控来快速定位应用操作系统上的问题,而业务问题呢?在这篇 ...
- JDK下载安装与环境变量配置【全网最新】
1.下载安装JDK 下载地址:(https://www.oracle.com/java/technologies/downloads/) 最好选择解压版,解压即可(说删就删) 解压:例如我解压目录为 ...
- [SWPU2019] NETWORK
[SWPU2019]Network(TTL隐写) 1.题目概述 2.解题过程 文档中的数字代表什么呢?会不会是RGB? 看了一下以前做过的题目,好像并不是 那是什么呢?百度告诉我这是TTL隐写,哇,长 ...
- rsync同步文件到远程机器,卡住10多秒--问题解决过程
背景 以前大体介绍过,我们这边是做运维平台的.如果要形象化理解,那么,比如jenkins这种喜闻乐见的软件大致了解吧,jenkins就经常需要同步文件/版本包到远程机器上,jenkins怎么实现的,没 ...