使用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 连接,并且 ...
随机推荐
- PyTorch 中的乘法:mul()、multiply()、matmul()、mm()、mv()、dot()
torch.mul() 函数功能:逐个对 input 和 other 中对应的元素相乘. 本操作支持广播,因此 input 和 other 均可以是张量或者数字. 举例如下: >>> ...
- linux中docker容器安装vi命令详解
在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...
- C#?和??运算符以及合并条件表达式
最近项目中,常常碰到这个?和??这两个操作符,之前说得不够详细,趁着周末补全来,希望能够给大家带来帮助. (一)?操作符 我们知道值类型是不肯能为空的,它总是包含值的本身,不会为NULL,这估计也是值 ...
- WIN10:显示文件后缀.exe
- docker入门-Dockerfile入门
1.dockerfile 构建基础命令 2. 构建镜像命令 Usage: docker image build [OPTIONS] PATH | URL | -Options:-t, --tag li ...
- appium ios 相对坐标点击和控件滑动操作
环境: 系统:ios 10.13.6 (17G12034) appium:1.14.0 xcode:10.1 iphone:iphone7 12.4 在尝试使用driver.tap([(a,b)],5 ...
- JZ-017-树的子结构
树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 题目链接: 树的子结构 代码 /** * 标题:树的子结构 * 题目描述 * 输入两棵 ...
- 七天接手react项目-起步
七天接手react项目-起步 背景 假如七天后必须接手一个 react 项目(spug - 一个开源运维平台),而笔者只会 vue,之前没有接触过 react,此刻能做的就是立刻展开一个"7 ...
- 如何用Google Drive下载超大型文件
本文将对「如何下载Google Drive中的超大型文件?」这一问题展开探索和解决. 太长不读:直接看这里 情景与问题 在AI.系统安全等研究领域,一项研究成果的产生需要大量的数据样本进行训练和分析, ...
- 理解 MVCC
MongoDB.MySQL.Oracle.PostgreSQL 等事务型数据库都有 mvcc 的概念. MVCC: 即多版本并发控制,主要是为了提高数据库的读写性能,让数据库在读写的时候不用去加锁.m ...