Odwiedzone strony:
GET:http://lenghongwei.com/?p=93
http code: 200
Zrzut ostatniej (http://lenghongwei.com/?p=93) :
OpenStack实践系列(九)SaltCloud创建OpenStack实例 – 架构之路

OpenStack实践系列(九)SaltCloud创建OpenStack实例

openstack 2207 Views 0 Comments

Salt Cloud提供了一个强大的接口来与云主机交互。此接口与Salt紧密集成,新的虚拟机在创建后自动连接到您的Salt主机。

由于Salt Cloud被设计为自动化系统,大多数配置使用以下YAML配置文件完成:
/etc/salt/cloud:主配置文件,包含适用于所有云主机的全局设置。请参阅Salt Cloud配置。
/etc/salt/cloud.providers.d/*.conf:包含配置特定云主机的设置,如凭据,区域设置等。由于每个云主机之间的配置差异很大,因此应为每个云主机创建一个单独的文件。在Salt Cloud中,提供者是云主机(Amazon EC2,Google Compute Engine,Rackspace等)的同义词。请参阅提供程序特定。
/etc/salt/cloud.profiles.d/*.conf:包含定义特定虚拟机类型的设置。配置文件定义系统规格和映像以及特定于此VM类型的任何其他设置。每个特定的VM类型称为配置文件,并且可以在配置文件文件中定义多个配置文件。每个配置文件引用定义创建VM的云主机的父提供程序(提供程序设置位于上述提供程序配置中)。根据您的需要,您可以为Web服务器,数据库服务器等定义不同的配置文件。

配置设置按顺序从cloud config => providers => profile.
cloud-settings-inheritance.png-29.6kB
例如,如果要为特定提供程序的所有虚拟机使用相同的映像,则映像名称可以放在提供程序文件中。 此值由使用该提供程序的所有配置文件继承,但如果在配置文件中定义了映像名称,则会覆盖此值。

大多数配置设置可以在任何文件中定义,主要区别是该设置是如何继承的。

1.SaltStack基础服务安装

1.配置salt yum仓库

[root@linux-node1 ~]# cat /etc/yum.repos.d/salt.repo
[saltstack-repo]
name=SaltStack repo for Red Hat Enterprise Linux $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/base/RPM-GPG-KEY-CentOS-7
2.安装salt-master、salt-minion、salt-cloud

[root@linux-node1 ~]# yum install salt-master salt-minion salt-cloud -y
3.编辑配置/etc/salt/minion指定salt-master

master: 192.168.56.11
4.启动salt-master,salt-minion服务,并将其配置为在系统启动时启动

[root@linux-node1 ~]# systemctl enable salt-master salt-minion
[root@linux-node1 ~]# systemctl start salt-master salt-minion
5.salt-key添加认证,并建立连接

[root@linux-node1 ~]# salt-key -A -y
[root@linux-node1 ~]# salt-key
Accepted Keys:
linux-node1.xuliangwei.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:
2.Salt-cloud关联OpenStack

在/etc/salt/cloud.providers或/etc/salt/cloud.providers.d/openstack.conf中设置云配置(yaml注意空格,建议复制)

[root@linux-node1 ~]# cat /etc/salt/cloud.providers.d/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
# Configure Openstack authentication credentials
#
user: demo
password: demo
# tenant is the project name
tenant: demo
driver: openstack
# skip SSL certificate validation (default false)
insecure: false
测试,获取可用图像和实例类型的列表,使用以下命令:

[root@linux-node1 ~]# salt-cloud –list-images openstack -l debug
my-openstack-config:
———-
openstack:
———-
cirros:
———-
driver:
extra:
———-
created:
2016-10-09T06:03:13Z
metadata:
———-
minDisk:
0
minRam:
0
progress:
100
serverId:
None
status:
ACTIVE
updated:
2016-10-09T06:03:14Z
get_uuid:
id:
54daa962-097b-4968-aa71-8fa3123e4c41
name:
cirros
uuid:
72a762a377bb10cc870a8991a61630b2615fdcd0
[root@linux-node1 ~]# salt-cloud –list-sizes openstack -l debug
my-openstack-config:
———-
openstack:
———-
xuliangwei.com:
———-
bandwidth:
None
disk:
1
driver:
ephemeral_disk:
0
extra:
———-
get_uuid:
id:
5
name:
xuliangwei.com
price:
0.0
ram:
64
swap:
uuid:
8f0083f719dbc84a16323b7ad37ef6d0f240dba9
vcpus:
1
2.1配置虚拟机实例

Salt Cloud指定配置文件配置文件中的虚拟机,配置文件配置文件默认为/etc/salt/cloud.profiles以及/etc/salt/cloud.profiles.d/,并且是yaml配置,声明概要文件的语法很简单。

1.在/etc/salt/cloud.profiles.d/创建配置文件实例

[root@linux-node1 ~]# cat /etc/salt/cloud.profiles.d/web-node1.conf
web-node1:
provider: my-openstack-config
size: xuliangwei.com
image: cirros
ssh_key_file: /root/.ssh/id_rsa
ssh_key_name: mykey
ssh_interface: private_ips
networks:
– fixed:
– 40e7f254-8b5e-40f2-b1b6-2d744b2b0be7
minion:
master: 192.168.56.11
grains:
role: webserver
2.以下列表解释了一些重要的属性。

语法 描述
size 此选项获取虚拟机类型,openstack flavor list 输出中列出的选项之一
images 此选项获取虚拟机镜像,openstack image list 输出中列出的选项之一
ssh_key_file Salt-Cloud首次引导后用于SSH到虚拟机的SSH私钥,以便执行命令或脚本。此私钥的公钥必须是插入到VM的root用户帐户的authorized_key文件中的openstack公钥
ssh_key_name 插入到VM root用户帐户的authorized_keys文件中的openstack SSH公用密钥的名称。在使用此公钥之前,必须使用openstack命令或horizon web UI将该密钥加载到租户的帐户中
ssh_interface 此选项允许创建虚拟机公共IP,通过nova驱动器,可以在此定义私有云网络
networks 此选项允许创建虚拟机二层网络,使用fixed指定二层网络ID
minion 此选项允许指定虚拟机salt-master,使用salt-master管理虚拟机实例
grains 此选项允许指定虚拟机grins,使用role指定虚拟机实例组
2.2构建虚拟机实例

要使用salt-cloud创建虚拟机,请使用命令:-P: 并行构建所有指定的实例
1.指定实例文件IDweb-node1,指定虚拟机名称web-node1.xuliangwei.com

[root@linux-node1 ~]# salt-cloud -p web-node1 web-node1.xuliangwei.com
2.通过dashboard查看

虚拟机

salt-cloud自动创建
3.自动认证加入salt-master管理

[root@linux-node1 ~]# salt-key
Accepted Keys:
linux-node1.xuliangwei.com
web-node1.xuliangwei.com
2.3销毁虚拟机实例

要销毁由salt-cloud创建的虚拟机,请使用如下命令:-d:销毁指定的实例名称。

[root@linux-node1 ~]# salt-cloud -d web-node1.xuliangwei.com -y
my-openstack-config:
———-
openstack:
———-
web-node1.xuliangwei.com:
True
3.多配置文件实例

生产配置文件实例

rhel_ec2:
provider: my-ec2-config
image: ami-e565ba8c
size: t1.micro
minion:
cheese: edam
ubuntu_ec2:
provider: my-ec2-config
image: ami-7e2da54e
size: t1.micro
minion:
cheese: edam
ubuntu_rackspace:
provider: my-rackspace-config
image: Ubuntu 12.04 LTS
size: 256 server
minion:
cheese: edam
fedora_rackspace:
provider: my-rackspace-config
image: Fedora 17
size: 256 server
minion:
cheese: edam
cent_linode:
provider: my-linode-config
image: CentOS 6.2 64bit
size: Linode 512
cent_gogrid:
provider: my-gogrid-config
image: 12834
size: 512MB
cent_joyent:
provider: my-joyent-config
image: centos-6
size: Small 1GB

如未说明则本站原创,转载请注明出处:架构之路 » OpenStack实践系列(九)SaltCloud创建OpenStack实例

您必须 登录 才能发表评论!