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
安装依赖包:
2、 创建provider配置文件,告诉salt-cloud如何连接openstack(yaml语法,注意空格)
3 、检查配置:
语法:
salt-cloud --list-locations <provider_name> 查看可用的区域
salt-cloud --list-p_w_picpaths <provider_name> 查看可用的镜像
salt-cloud --list-sizes <provider_name> 查看可用的虚拟机大小
例:查看可用的镜像
myopenstack:provider配置文件中定义的ID
-l debug :开启debug模式,方便定位和调试故障。
可以看到,当前有两个可用的镜像,cirros 和new ,并且可以看到更过镜像的信息。
4、 编写profile配置文件,告诉salt-cloud创建虚拟机的细节,后期创建虚拟机时只需要调用该名字即可。
6 、查看验证:
通过上面的配置文件,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