安装sources.list

sources.list  时间:2021-05-05  阅读:()

第3章安装Keystone安全认证服务早期的OpenStack版本中,并没有Keystone安全认证模块.
用户、消息、API调用的认证,都是放在Nova模块中.
在后来的开发中,由于有各种各样的模块加入到OpenStack中,安全认证所涉及的面也变得更加广泛,如用户登录、用户消息传递、模块消息通信、服务注册等各不相同的认证.
处理这些不同的安全认证变得越来越复杂,于是需要一个模块来处理这些不同的安全认证.
Keystone也就应运而生.
本章主要介绍MySQL的安装与使用,以及Keystone服务安装及测试.
本章主要涉及到的知识点如下.
MySQL:数据库的介绍与安装.
RabbitMQ:消息通信服务的介绍与安装.
Keystone:安全认证服务的介绍与安装.
3.
1Keystone简介OpenStack管理了众多的软硬件资源,并且利用这些资源提供云服务.
任何资源的管理,都会涉及到安全的管理.
就OpenStack而言,安全的管理,分为以下几个方面:用户认证、服务认证和口令认证.
无论是私有云还是公有云,都会开放接口给众多的用户.
Keystone在对于用户进行认证的同时,也对用户的权限进行了限制.
Keystone还会保证OpenStack的服务可以正常注册.
除此之外,各服务组件之间的消息传递还需要用口令,当口令过期则不再使用此口令.
如果把OpenStack比作一个别墅,OpenStack内部的各种服务好比各种房间,用户比作住在别墅里面的人,那么Keystone就是相当于别墅的安全机制.
首先,进入别墅的人需要进行身份认证.
除此之外,当用户进入到别墅之后,只能进入属于自己可以访问的房间,并不是所有的房间都可以进去(好比Keystone的用户权限管理).
别墅里面的房间都需要进行安全机制的管理(如上锁、刷卡).
此外串门的时候,还需要使用口令1.
由于OpenStack所有的服务都需要在Keystone上进行注册,所以OpenStack的安装需要从Keystone入手.
1实际上,在家里面,也经常使用口令.
进门的时候会说"我回来了",进入父母的房间会说"我可以进来么",人的声音就起到了口令的作用.
第3章安装Keystone安全认证服务·71·3.
2搭建局域网源数据中心中的结点,并不能保证都能够正常地访问公共网络.
在这些节点上安装服务时,最好的方式是使用离线源.
本节介绍如何搭建两种将会在OpenStack中用到的源:deb源和python安装包源.
3.
2.
1局域网apt-get源搭建方法实际安装部署时,并不能保证每个结点都可以访问网络.
因此,建立局域网apt-get源显得非常必要.
建立局域网源方法如下.
1.
下载deb包假设有两类相同Ubuntu版本的结点:A类结点可以直接访问公共网络;B类结点不能直接访问公共网络.
首先需要在A类结点上安装所需要的deb包.
比如,如果B类结点需要安装python-dev包,那么需要在A类结点上执行:root@A-node#apt-getinstallpython-dev如果B类结点需要安装的包非常多,那么只需要将这些包,在A类结点上都执行一遍即可.
安装命令执行成功之后,在A结点上收集所有的deb包,放置于/tmp/debs/目录下:root@A-node#mkdir-p/tmp/debs/root@A-node#cd/var/cache/apt/root@A-node#find.
-name"*.
deb"|xargs-icp-rf{}/tmp/debs/2.
创建deb结构描述文件/tmp/debs目录包含了所需的deb包,可是/tmp/debs目录并不能直接作安装源使用.
还需要创建目录结构描述文件Packages.
g.
创建目录结构描述文件需要利用dpkg-scanpackages命令,首先需安装dpkg-dev包:root@A-node#apt-getinstall-y--force-yesdpkg-dev安装成功之后,可以创建目录描述文件:root@A-node#cd/tmp/root@A-node#rm-rfdebs/Packages.
gzroot@A-node#dpkg-scanpackagesdebs/|gzip>debs/Packages.
gz3.
使用局域网源此时,/tmp/debs目录已经具备了目录结构描述文件Packages.
gz.
但是,如何使用呢答案便是安装Apache服务.
01root@A-node#apt-getinstall-y--force-yesopenssh-serverbuild-essentialgit\第2篇安装篇·72·python-devpython-setuptoolspython-piplibxml2-dev\libxslt1.
1libxslt1-devlibgnutls-devlibnl-3-dev\python-virtualenvlibnspr4-devlibnspr4pkg-config\apache2unzip02[[-e/usr/include/libxml]]&&rm-rf/usr/include/libxml03ln-s/usr/include/libxml2/libxml/usr/include/libxml04[[-e/usr/include/netlink]]&&rm-rf/usr/include/netlink05ln-s/usr/include/libnl3/netlink/usr/include/netlink注意:这里多安装了一些包,是为了在安装python某些源包时,自动解决掉其依赖.
比如python-lxml包.
在A结点上,将/tmp/debs复制至/var/www/目录下.
root@A-node#cp-rf/tmp/debs/var/www/使用方法比较简单,只需要在/etc/apt/sources.
list文件中添加如下内容:root@B-node#cp-rf/etc/apt/sources.
list/etc/apt/sources.
list_bakroot@B-node#echo"debhttp://192.
168.
111.
140debs/">/etc/apt/sources.
list注意:192.
168.
111.
140是A类结点在局域网内的IP地址.
也可以使用主机名.
3.
2.
2局域网python源搭建方法除了apt-get源之外,还需要建立python安装包的源,以便pip命令安装依赖包使用.
如果局域网内的结点不能访问网络,利用pip命令安装依赖包将会失败.
那么,如何建立python包源给局域网使用呢1.
下载python包同理,假设有两类相同环境的Ubuntu结点:A类结点可以直接访问公共网络;B类结点不能直接访问公共网络.
需要在A类结点上安装相应的python包,比如:root@A-node#pipinstall-rpip-requires--download-cache=/tmppip-requires并不是一个python包,而是一系列python包的列表,内容如下:kombu>=0.
9.
17routes>=1.
12.
3执行成功之后,pip会将pip-requires中需要的包都下载至/tmp/目录.
在/tmp/目录下的安装包名字显得比较混乱,比如:#ls/tmp/http%3A%2F%2Fpypi.
python.
org%2Fpackages%2Fsource%2Fk%2Fkombu%2Fkombu-2.
5.
10.
tar.
gzhttp%3A%2F%2Fpypi.
python.
org%2Fpackages%2Fsource%2Fp%2Fpycrypto%2Froutes-1.
12.
3.
tar.
gz通过运行如下脚本,可以简化包的名字:01#catch.
sh第3章安装Keystone安全认证服务·73·02#!
/bin/bash03rm-rf*type*.
html04fornin`find.
-name"http*"`05do06mv$n${n##*2F}07done简化之后的结果如下:#ls/tmp/kombu-2.
5.
10.
tar.
gzroutes-1.
12.
3.
tar.
gz2.
建立目录树接下来,只需要建立如下目录树:root@A-node#tree/tmp/pip/tmp/pipkombukombu-2.
5.
10.
tar.
gzroutesroutes-1.
12.
3.
tar.
gz3.
Apache服务python安装包源的建立,最好的依赖方式还是使用Apache服务来支撑.
首先安装好Apache服务:root@A-node#apt-getinstallapache2root@A-node#cp-rf/tmp/pip/var/www/root@A-node#serviceapache2restart4.
使用局域网python源安装某个包时,只需要指定下载服务器即可,比如:root@B-node#pipinstallroutes-ihttp://192.
168.
111.
140/pip或者批量安装:root@B-node#pipinstall-rpip-requires-Ihttp://192.
168.
111.
140/piproot@B-node#catpip-requireskombu>=0.
9.
17routes>=1.
12.
3注意:192.
168.
111.
140是A类结点在局域网内的IP地址.
也可以使用主机名.
5.
自动建立OpenStackPython依赖源由于OpenStackPython依赖包太多,本文也提供了自动下载并构建目录树的脚本1.
运行方式如下:root@A-node#gitclonehttps://github.
com/JiYou/openstack.
git1https://github.
com/JiYou/openstack/tree/master/tools/pip.
sh.
第2篇安装篇·74·root@A-node#cdopenstack/tools/root@A-node#.
/pip.
sh注意:保证运行结点能够直接连上公共网络;如果需要设置proxy,请将proxy设置于~/proxy文件中.
文件内容如下:exporthttps_proxy="http://ip:port"exporthttp_proxy=$valueexportftp_proxy=$value3.
2.
3Ubuntu-12.
10局域网源由于本书使用的是Ubuntu-12.
10Server,在GitHub上,早已准备好了相应的资源.
如果操作系统版本一致,那么构建OpenStack所用的局域网源就比较简单了(确保OpenStack版本一致).
(1)建源root@A-node#gitclonehttps://github.
com/JiYou/openstack.
gitroot@A-node#cdopenstack/tools/root@A-node#.
/create_http_repo.
sh(2)使用其他结点使用A结点上的源,设置方式如下:root@B-node#cp-rf/etc/apt/sources.
list/etc/apt/sources.
list_bakroot@B-node#echo"debhttp://A-nodedebs/">/etc/apt/sources.
list此外,在后续的安装中,如果涉及到localrc文件中的PIP_HOST变量,即是指向A结点.
例如:PIP_HOST=A-node3.
3搭建MySQL数据库Keystone所有的数据都存放于数据库中.
由于MySQL数据库的大规模使用,在OpenStack中,也推荐使用MySQL作为数据库.
MySQL数据库的搭建本来不是OpenStack的重点,在很多安装文档中,也都一笔带过.
但是MySQL数据库安装及配置带来的问题,会影响到整个OpenStack环境,因此本节专门讲解MySQL数据库的搭建.
MySQL数据库的搭建,有大、中、小3种规模.
大型应用情况下,还可以使用集群部署来保证数据查询的性能.
但是本节由于是试验性质,并不讲解各种复杂的安装与部署方法.
本节根据部署经验,选择了简单、快捷的部署方式.
大型环境下的安装,需要参考MySQL更加专业的文档1.
3.
3.
1apt-get安装MySQL安装MySQL数据库,一般而言,有两种方法:apt-get安装;源码编译安装.
本书的1《构建高可用linux服务器》一书中提到了各种MySQL数据库的部署方法,可供参考.
第3章安装Keystone安全认证服务·75·OpenStack安装环境,是将每个服务单独进行安装,以便进行讲解与调试.
每个服务单独安装与介绍,也容易理解.
因此,本书的每个服务都是尽量单独安装到不同的物理机或者虚拟机中.
为了安全和方便,将MySQL单独安装到一台物理机或者虚拟机中1.
1.
准备虚拟机本书是将MySQL安装到一个单独的虚拟机中,如果已经有了ubuntu-12.
10的虚拟机,或者物理机,此步骤可以略过.
首先应该采用本书2.
4节介绍的方法,制作ubuntu-12.
10.
raw虚拟磁盘,并将虚拟磁盘存放于/cloud/_base目录下.
当准备好raw格式的ubuntu-12.
10虚拟磁盘之后,还需要一个xml文件作为虚拟机配置模板.
本书提供了一个虚拟机配置文件2,下载此文件并保存为/cloud/_base/back.
此外还提供了一个快速创建虚拟机的脚本vm.
sh3,下载之后,放在/cloud/目录下.
进而形成如下的目录结构:root@server4:/#tree/cloud/cloud_baseback#虚拟机xml配置文件模板ubuntu-12.
10.
raw#做好的ubuntu-12.
10的虚拟磁盘,作为backingfilevm.
sh#快速创建虚拟机的脚本注意:使用vm.
sh创建虚拟机的时候,需要根据所使用的ubuntu-12.
10.
raw文件修改vm.
sh第48行:mount/dev/mapper/ubuntu--12-root$temp_file.
/dev/mapper/Ubuntu--12--root路径表示了虚拟磁盘根分区在宿主机上的路径.
当准备好脚本之后,可以利用脚本创建mysql的虚拟机,运行命令如下:root@server4:/cloud#.
/vm.
shmysqlroot@server4:/cloud#virshdefinemysql/mysqlroot@server4:/cloud#virshstartmysqlroot@server4:/cloud#virshvncdisplaymysql:0如果虚拟机使用的是DHCP获得网络IP,在第一次连接时,需要使用vnc登录4,从而获得虚拟机的IP地址,如图3.
1所示.
获取虚拟机的IP之后,会发现虚拟机有两个IP地址.
SSH应该使用哪个IP地址登录虚拟机呢值得注意的一点是:如果处于公有网段(或和宿主机一样网段),连接虚拟机时都需要采用eth0的IP地址.
eth1的静态IP地址,主要是用于同一台宿主机上的虚拟机相互通信5.
1这台物理机或者服务器,不要安装别的OpenStack组件,否则容易出现数据库连接不上的问题.
2https://github.
com/JiYou/openstack/blob/master/chap03/cloud/_base/back.
3https://github.
com/JiYou/openstack/blob/master/chap03/cloud/vm.
sh.
4连接vnc时,采用vncviewer,输入宿主机IP:端口号即可.
5采用这种方式,虚拟机之间的相互通信,就可以采用固定IP地址,不用再担心IP地址的变化.
第2篇安装篇·76·图3.
1vnc连接虚拟机查看IP地址2.
安装MySQL当虚拟机或者物理机准备就绪之后,便可以安装MySQL1.
在安装MySQL之前,首先需要设置防火墙.
配置防火墙命令如下:01iptables-IINPUT1-ptcp--dport3306-jACCEPT#MySQL02iptables-IINPUT1-ptcp--dport5672-jACCEPT#AMPQ03iptables-IINPUT1-ptcp--dport5000-jACCEPT#Keystonepublic04iptables-IINPUT1-ptcp--dport35357-jACCEPT#Keystoneadmin05iptables-IINPUT1-ptcp--dport9191-jACCEPT#Glanceregistry06iptables-IINPUT1-ptcp--dport9292-jACCEPT#Glanceapi07iptables-IINPUT1-ptcp--dport8773-jACCEPT#nova-api08iptables-IINPUT1-ptcp--dport5900:6400-jACCEPT#nova-compute09iptables-IINPUT1-ptcp--dport8776-jACCEPT#Cinder10iptables-IINPUT1-ptcp--dport3260-jACCEPT#iSCSIforcinder-#volume11iptables-IINPUT1-ptcp--dport9696-jACCEPT#Quantum12iptables-IINPUT1-ptcp--dport6080-jACCEPT#noVNCport13iptables-IINPUT1-ptcp–-dport80jACCEPT#dashboardwebport如果每次机器重启之后都要输入这些命令,并不是一个好方法.
因此,一种简单的办法是在每次开机启动的时候,执行这些设置.
01functionsetup_iptables(){02set+oxtrace03sed-i"/exit/d"/etc/rc.
local#修改开机启动脚本,去掉exit004sed-i"/iptable/d"/etc/rc.
local#如果有旧的iptables设置,删除掉,防止冲突0506fornin330656725000353579191929287738774877587765900:64001MySQL的安装程序放于https://github.
com/JiYou/openstack/tree/master/chap03/mysql.
在使用时,请先运行init.
sh脚本.
接着再运行mysql.
sh安装MySQL.
第3章安装Keystone安全认证服务·77·32609696608080;do#为每个端口加入防火墙配置方案07echo"iptables-IINPUT1-ptcp--dport$n-jACCEPT">>/etc/rc.
local08done09echo"exit0">>/etc/rc.
local#加上exit0退出开机运行脚本10chmod+x/etc/rc.
local11set-oxtrace12}注意:这段代码位于function文件1中.
当配置好防火墙之后,就可以安装MySQL了.
一种简单而又方便的方式是直接apt-getinstallmysql-servermysql-client,便可以在Ubuntu上将MySQL安装好.
但是采用这种安装方式,需要手动输入密码.
并不利于自动化安装及配置.
因此,在这里,需要讲一下本书涉及到的安装方式.
本书中采用的安装方式,在将每个服务分别安装的同时,尽量将安装及配置分开.
因此,安装一般分为以下几个部分:OpenStack源码,比如Nova、Keystone和Swift;安装依赖包,主要是python依赖包;程序安装脚本,如nova.
sh、mysql.
sh和keystone.
sh等等,以服务为一个单位;配置文件localrc;工具包函数,位于tools/function目录下.
在安装MySQL时,应该先在配置文件中配置好MySQL的密码,以及写入MySQL服务所在的IP.
为MySQL的配置如下:MYSQL_ROOT_PASSWORD=mysqlpasswordMYSQL_HOST=10.
239.
82.
83注意:在使用时,应该根据自己所在环境做出更改.
配置完成之后,执行init.
sh设置防火墙,再执行mysql.
sh安装MySQL.
现将mysql.
sh脚本分段进行讲解.
MySQL密码配置代码如下:set_passwordMYSQL_ROOT_PASSWORD其中set_password会调用tools/function中的set_password函数:01functionset_password{02set+oxtrace03var=$1;04pw=${!
var}05localrc=$TOP_DIR/localrc06if[!
$pw];then#查看用户是否设置了MySQL密码,如果没有设置07if[!
-e$localrc];then#就生成一个10位长度的随机密码以供使用08touch$localrc09fi10pw=`opensslrand-hex10`#随机生成10位数长度的随机密码11eval"$var=$pw"12echo"$var=$pw">>$localrc#将随机生成的密码保存至用户的配置文件中13fi1https://github.
com/JiYou/openstack/blob/master/chap03/mysql/tools/function.
第2篇安装篇·78·14set-oxtrace15}注意:set_password函数会自动添加与设置变量MYSQL_ROOT_PASSWORD的值.
如果发现使用者并没有在localrc中设置MYSQL_ROOT_PASSWORD变量的值,那么将会使用一个长度为10的随机密码替代.
安装MySQL则使用如下命令:DEBIAN_FRONTEND=noninteractive\apt-get--option"Dpkg::Options::=--force-confold"--assume-yes\install-y--force-yesmysql-server注意:如果直接使用apt-getinstallmysql-server会在终端中弹出输入框,输入root用户的密码,对于自动化安装而言,不是很方便.
3.
配置MySQL当采用这种方式安装好MySQL之后,MySQL并没有设置root的密码,如果直接连接,则会失败.
这时,需要设置MySQL数据库root用户1的密码.
if[[`cat/etc/mysql/my.
cnf|grep"0.
0.
0.
0"|wc-l`-eq0]];thenmysqladmin-urootpassword$MYSQL_ROOT_PASSWORD#设置root用户的密码sed-i's/127.
0.
0.
1/0.
0.
0.
0/g'/etc/mysql/my.
cnf#修改配置,允许任何主机连接fi注意:在执行命令时,首先检查MySQL配置文件是否被修改,如果未被修改,那么设置MySQL的root用户密码以及修改配置文件.
接下来则是配置root用户的权限,以免在连接的时候,出现不能连接的情况.
servicemysqlrestartmysql-uroot-p$MYSQL_ROOT_PASSWORD-e"GRANTALLPRIVILEGESON*.
*TO'root'@'%'identifiedby'$MYSQL_ROOT_PASSWORD';FLUSHPRIVILEGES;"mysql-uroot-p$MYSQL_ROOT_PASSWORD-e"GRANTALLPRIVILEGESON*.
*TO'root'@'%'identifiedby'$MYSQL_ROOT_PASSWORD'WITHGRANTOPTION;FLUSHPRIVILEGES;"servicemysqlrestart配置好权限之后,重启MySQL服务,便可以正常使用了.
3.
3.
2源码安装MySQL对于希望自定义安装MySQL的使用者而言,没有比源码安装更好的方式了.
与apt-get安装方式相比,源码编译安装需要更多的配置步骤.
1值得注意的是,这里的root用户并不是Linux系统的root用户,而是数据库的根用户.
第3章安装Keystone安全认证服务·79·在开始源码安装之前,需要下载cmake1与MySQL的源代码2.
源码安装MySQL的主要步骤介绍如下(具体细节可以参见完整的脚本3).
(1)安装编译环境DEBIAN_FRONTEND=noninteractive\apt-get--option"Dpkg::Options::=--force-confold"--assume-yes\install-y--force-yesopenssh-serverbinutilscppfetchmail\flexgcclibarchive-zip-perllibc6-dev\libpcre3libpopt-devlynxm4makencftp\nmapperlperl-modulesunzipzipzlib1g-dev\autoconfautomake1.
9libtoolbisonautotools-dev\g++build-essentiallibncurses5-dev注意:这里是一行代码,不要分成几个命令执行.
(2)编译安装cmake01if[[!
-d$DIR/cmake]];then#查看安装目录是否已经安装过了02cd$TEMPDIR#编译时,将代码解压至临时目录编译03tarzxvf$TOPDIR/tarfile/cmake-2.
8.
8.
tar.
gz04cdcmake-2.
8.
805.
/configure--prefix=$DIR/cmake#confiugre时,只需要指定安装路径即可06make;makeinstall#编译并且安装07fi注意:默认的DIR=/opt,因此脚本默认将cmake安装至/opt/cmake目录下.
(3)至此,cmake就安装好了.
接下来需要添加mysql用户01if[[`cat/etc/passwd|grepmysql|wc-l`-eq0]];then#查看是否已经有了mysql用户02groupaddmysql#添加mysql组03useradd-gmysqlmysql#添加mysql用户至mysql组中04fi(4)解压源码01cd$TEMPDIR#源码安装时,将源码解压至临时目录02tarzxvf$TOPDIR/tarfile/mysql-5.
5.
20.
tar.
gz03cdmysql-5.
5.
20(5)利用cmake编译MySQL01#compilesourcecode.
02$DIR/cmake/bin/cmake\#cmake还支持更多的参数,不过这3个参数足够了03-DCMAKE_INSTALL_PREFIX=$DIR/mysql\#指定安装目录04-DMYSQL_DATADIR=$DIR/mysql/data\#指定数据库存储目录05-DEXTRA_CHARSETS=utf8#指定编码方式06make;makeinstall1cmake一种简单的安装方式是apt-getinstall-ycmake.
新版本MySQL需要使用cmake来生成Makefile.
2cmake的源码位置是http://www.
cmake.
org/cmake/resources/software.
html.
MySQL的源码从https://edelivery.
oracle.
com/注册之后,便可以下载.
3完整的脚本位于https://github.
com/JiYou/openstack/blob/master/chap03/mysql/mysql-src-ist.
sh.
第2篇安装篇·80·(6)安装完成之后,并不能直接使用,还需要做进一步的配置.
这些配置如果是使用apt-get安装,那么都已经配置好,不需要手动修改.
01chmod+w$DIR/mysql02chown-Rmysql:mysql$DIR/mysql03cp$DIR/mysql/support-files/my-large.
cnf/etc/my.
cnf#复制MySQL配置文件04cp$DIR/mysql/support-files/mysql.
server/etc/init.
d/mysql#复制服务启动脚本05chmod+x/etc/init.
d/mysql#给服务启动脚本添加执行权限06chmoda+w$DIR/mysql07mkdir-p$DIR/mysql/var/mysql#创建服务运行时所需要的目录08mkdir-p$DIR/mysql/var/mysql/data09mkdir-p$DIR/mysql/var/mysql/log10mkdir-p$DIR/mysql/var/mysql/lock11mkdir-p$DIR/mysql/var/run/mysqld12chown-Rmysql:mysql$DIR/mysql#注意更改所有者注意:由于这些安装操作都是在root下完成的,因此,在安装时,一定要掌握权限的设置.
(7)初始化数据库$DIR/mysql/scripts/mysql_install_db\--basedir=$DIR/mysql/\#指向安装目录,与cmake参数一致--datadir=$DIR/mysql/data\#指向数据库存储目录,与cmake参数一致--user=mysql设置MySQL数据库密码:servicemysqlrestart#首先启动服务$DIR/mysql/bin/mysqladmin-urootpassword$MYSQL_ROOT_PASSWORD#设置[-e/usr/bin/mysql]&&rm-rf/usr/bin/mysqlln-s/opt/mysql/bin/mysql/usr/bin/mysql#建立mysql可行执程序的链接当设置好MySQL数据库密码之后,接下来设置root用户的访问权限:mysql-uroot-p$MYSQL_ROOT_PASSWORD-e"GRANTALLPRIVILEGESON*.
*TO'root'@'%'identifiedby'$MYSQL_ROOT_PASSWORD';FLUSHPRIVILEGES;"mysql-uroot-p$MYSQL_ROOT_PASSWORD-e"GRANTALLPRIVILEGESON*.
*TO'root'@'%'identifiedby'$MYSQL_ROOT_PASSWORD'WITHGRANTOPTION;FLUSHPRIVILEGES;"3.
4安装RabbitMQ消息通信服务MySQL安装成功之后,接下来安装RabbitMQ消息通信服务.
MySQL为OpenStack提供了数据库服务,而RabbitMQ则提供了基于消息的通信服务和远程函数调用功能.
与传统的远程函数调用不同,RabbitMQ的远程函数调用也是基于消息传递的.
这种灵活的方式为函数调用提供了极大的便利,开发者在写远程函数调用的时候,不需要写服务端和客户端代码.
因此,服务端函数的修改,有时候并不会影响客户端代码.
RabbitMQ的安装相对简单,但是在安装时,建议找一台性能相对较好的机器进行第3章安装Keystone安全认证服务·81·安装.
在安装之前,首先要配置RabbitMQ安装需要的变量1:RABBITMQ_HOST=10.
239.
82.
159#RabbitMQ主机的IP地址RABBITMQ_USER=guest#连接RabbitMQ服务时使用的用户名RABBITMQ_PASSWORD=rabbit_password#连接时使用的密码当配置好环境之后,便可以进行RabbitMQ的安装2:set_passwordRABBITMQ_PASSWORD#设置连接密码参数apt-getinstall-yrabbitmq-server#安装RabbitMQ服务rabbitmqctlchange_passwordguest$RABBITMQ_PASSWORD#设置连接密码安装成功之后,可以运行一下命令来检查RabbitMQ服务是否正常运行:$psaux|greprabbit/usr/lib/erlang/erts-5.
9.
1/bin/beam-Ww-Ktrue-A30-P1048576---root/usr/lib/erlang-prognameerl---home/var/lib/rabbitmq---noshell-noinput-snamerabbit@arabbitmq-boot/var/lib/rabbitmq/mnesia/rabbit@arabbitmq-plugins-expand/rabbit-kernelinet_default_connect_options[{nodelay,true}]-saslerrlog_typeerror-saslsasl_error_loggerfalse-rabbiterror_logger{file,"/var/log/rabbitmq/rabbit@arabbitmq.
log"}-rabbitsasl_error_logger{file,"/var/log/rabbitmq/rabbit@arabbitmq-sasl.
log"}-os_monstart_cpu_supfalse-os_monstart_disksupfalse-os_monstart_memsupfalse-mnesiadir"/var/lib/rabbitmq/mnesia/rabbit@arabbitmq"注意:具体输出可能不相同.
3.
5安装Keystone讲了这么久,总算是要开始真正涉及OpenStack的安装了.
首先要安装的是OpenStack最关键的组件Keystone.
Keystone主要为整个OpenStack提供安全认证服务.
OpenStack用户登录、服务注册以及消息通信都会用到这个关键组件.
掌握安全组件的安装,直接关系到整个OpenStack的安装是否顺利.
在安装时,强烈建议git下载OpenStack安装脚本进行安装.
gitclonehttps://github.
com/JiYou/openstack.
git3.
5.
1python源码包的安装首先下载源码时,如果不是为了参与社区开发,都应该首选launchpad3上面提供的OpenStack的稳定版本的代码.
一个python源码包主要有以下安装步骤.
1完整的配置参见https://github.
com/JiYou/openstack/blob/master/chap03/rabbitmq/localrc.
2完整的脚本参见https://github.
com/JiYou/openstack/blob/master/chap03/rabbitmq/rabbitmq.
sh.
3https://launchpad.
net/openstack.
第2篇安装篇·82·(1)下载源码包Keystone的源码应该从https://launchpad.
net/openstack/keystone链接处下载,如图3.
2所示.
图3.
2Keystone下载页面(2)安装依赖包下载完成之后,接下来以Keystone为例,介绍如何手动安装python源码包.
首先应该安装pip工具及pyton开发包python-dev:01apt-getinstall-ypython-pippython-devbuild-essential02apt-getinstall-ylibxml2-devlibxslt-dev#安装python-lxml时需要这个开发库03[[-e/usr/include/libxml]]&&rm-rf/usr/include/libxml04ln-s/usr/include/libxml2/libxml/usr/include/libxml注意:02~03行都是为安装python-lxml包做准备.
如果是编译安装python-lxml,这些步骤必不可少.
接下来,进入到keystone/tools/目录,在此目录下,有一个pip-requires.
txt文件.
里面记录着Keystone所依赖的python包.
首先安装这些依赖包:~/keystone-2013.
1.
1/tools#pipinstall-rpip-requires(3)安装源码包当依赖包安装完成之后,进入源码主目录:~/keystone-2013.
1.
1#pythonsetup.
pybuildbuild命令会检查依赖是否安装完整.
如果build成功之后,便可以安装:~/keystone-2013.
1.
1#pythonsetup.
pydevelop由于keystone源码是留作开发或者测试使用,直接安装在当前目录,并不需要放至系统目录中.
如果是一些系统python包,比如python-django等,在安装这些包时,需要运行:~/keystone-2013.
1.
1#pythonsetup.
pyinstallinstall与develop的主要区别就在于:install会将python代码安装至系统目录,而develop则直接使用当前目录,以供开发测试使用.
第3章安装Keystone安全认证服务·83·3.
5.
2Keystone自动化安装通过上一小节的介绍,已经能够手动安装Keystone源码包了.
但是,对于自动化安装而言,这是远远不够的.
接下来,将介绍如何进行Keystone的自动化安装1.
安装分为以下几步:(1)init.
sh初始化系统环境,设置防火墙.
(2)配置localrc文件中的Keystone相关变量.
用户只需要配置此步骤则可,其他步骤不需要修改便可安装.
(3)运行keystone.
sh安装并测试Keystone服务.
(4)servicekeystonestatus查看运行状态(5)servicekeystonetest测试Keystone服务.
接下来讲解https://github.
com/JiYou/openstack/tree/master/chap03/keystone的安装脚本.
1.
配置环境变量安装之前,首先应该配置好localrc文件中必要的参数:01PIP_HOST=10.
239.
82.
179#安装python依赖包的源02MYSQL_KEYSTONE_USER=keystone#keystone连接MySQL时的用户名03MYSQL_KEYSTONE_PASSWORD=keystone_password#keystone连接MySQL的密码04KEYSTONE_HOST=10.
239.
82.
179#Keystone所在主机IP05ADMIN_PASSWORD=admin_user_password#设置Keystone管理员密码06ADMIN_TOKEN=admin_token#设置用token密码07SERVICE_TOKEN=$ADMIN_TOKEN#不要修改此行参数08ADMIN_USER=admin#管理员用户名,不建议修改此行09SERVICE_TENANT_NAME=service#Keystone管理服务的租户名注意:第01~06行可以根据自己的环境做相应的修改,而第07~09行不建议修改.
配置好localrc文件中的Keystone的相关参数之后,就可以安装Keystone了.
接下来讲解keystone.
sh脚本2,首先需要设置一些会影响安装的环境变量:01unsethttp_proxy02unsethttps_proxy03unsetftp_proxy04exportOS_USERNAME=""05exportOS_AUTH_KEY=""06exportOS_AUTH_TENANT=""07exportOS_STRATEGY=""08exportOS_AUTH_STRATEGY=""09exportOS_AUTH_URL=""10exportSERVICE_ENDPOINT=""1完整的keystone安装脚本位于https://github.
com/JiYou/openstack/blob/master/chap03/keystone/keystone.
sh.

paypal$10的代金券,选购美国VPS

paypal贝宝可撸$10的代金券!这两天paypal出了活动,本次并没有其他的限制,只要注册国区的paypal,使用国内的手机号和62开头的银联卡,就可以获得10美元的代金券,这个代金券购买产品需要大于10.1美元,站长给大家推荐几个方式,可以白嫖一年的VPS,有需要的朋友可以看看比较简单。PayPal送10美元活动:点击直达活动sfz与绑定卡的号码可以重复用 注册的邮箱,手机号与绑的银联卡必须...

可抵御99%的攻击中国单域版cdn:9元/月7T防御 cloudsecre

官方网站:点击访问CDN客服QQ:123008公司名:贵州青辞赋文化传媒有限公司域名和IP被墙封了怎么办?用cloudsecre.com网站被攻击了怎么办?用cloudsecre.com问:黑客为什么要找网站来攻击?答:黑客需要找肉鸡。问:什么是肉鸡?答:被控的服务器和电脑主机就是肉鸡。问:肉鸡有什么作用?答:肉鸡的作用非常多,可以用来干违法的事情,通常的行为有:VPN拨号,流量P2P,攻击傀儡,...

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

sources.list为你推荐
投标在线代理企业推广如何推广自己公司的产品。sqlserver2000挂起安装sqlserver2000时总提示有挂起操作!支付宝账户是什么支付宝帐号,指的是什么帐号 是网营密码吗密码cuteftp电子商务世界电子商务都有什么内容可信网站可信网站 是自己去注册的还是由做网站 的人帮弄的?工具条手机的工具栏怎么在任务栏里?怎么把工具栏调到手机下面?地址栏图标网站在地址栏显示的图标,是怎么显示出来的discuz教程Discuz! Database Error怎么解决啊?我的电脑打不开这个网啊很久了。其他电脑可以。
域名论坛 Oray域名注册服务商 河北服务器租用 景安vps 火山主机 wordpress主机 西安服务器 naning9韩国官网 mach5 免费个人网站申请 刀片式服务器 中国电信测网速 免费吧 hktv shopex主机 创建邮箱 网通服务器 石家庄服务器托管 贵阳电信测速 免费网络 更多