Archipel 安装与配置

Archipel 是一个管理和监督虚拟机的开源解决方案。->项目主页 ->GitHub地址

Architecture
Architecture

Archipel Agent --即上图的Physical Hypervisor 安装在每台物理机上
Archipel Client --即上图的Archipel GUI,安装在任意一台linux电脑上

一. Ejabberd XMPP 服务器端的配置安装

Archipel

XMPP服务器的域名就是本机的hostname, 我的hostname是 alecyrus.org , 这个可与通过命令" # hostname"得到,一般默认是ubuntu, 如果需要修改,可运行以下命令,别忘了之后在/etc/hosts 文件中,172.0.1.1 后在ubuntu后并列添加YourHostname,否则无法修改成功.

# hostname YourHostname
# echo YourHostname > /etc/hostname

1:安装ejabberd(至少15.04版本)

# echo "deb https://apt.jabber.at trusty ejabberd" > /etc/apt/sources.list.d/jabber.at.list
# wget -qO- https://apt.jabber.at/gpg-key | apt-key add -
# apt-get update
# apt-get install ejabberd

注:我是在ejabberd15.04版本下测试的,deb安装或者installer安装都行。两种方式安装后,打开关闭重启ejabberd服务的操作略有区别。具体查看ejabberd官方文档如果安装后使用命令开启ejabberd服务时报错,诸如Failed RPC connection... File Operate Error... 说明ejabberd安装出错,自行查看log解决。

2:安装必需的依赖包(ArchipelAgent也需要安装这些依赖包)
# apt-get install -y git build-essential qemu-kvm libvirt-bin libvirt-dev python-setuptools python-numpy python-imaging python-apscheduler python-sqlalchemy python-libvirt subversion python-dev

3:配置Ejabberd
老版本是ejabberd.cfg, 现在的版本都是yaml配置文件(ejabberd.yml)。
如下:

###
###             ejabberd configuration file
###         Archipel Sample default condiguration

###     =========================================
###     DEBUGGING


loglevel: 4

###     =========================================
###     SERVED HOSTNAMES

hosts:
    - "alecyrus.org"

###     =========================================
###     LISTENING PORTS

listen:
-
 
  port: 4560
  module: ejabberd_xmlrpc
  access_commands:
        xmlrpcaccess:
            all : []

## ejabberd c2s
-
  port: 5222
  module: ejabberd_c2s
  max_stanza_size: 65536000
  shaper: c2s_shaper
  access: c2s

## ejabbed s2s
-
  port: 5269
  module: ejabberd_s2s_in
  max_stanza_size: 65536000

-
  port: 5280
  module: ejabberd_http
  request_handlers:
    "/xmpp": ejabberd_http_ws
  web_admin: true
  http_bind: true

###     ========================================
###     S2S
s2s_policy: s2s_access
s2s_use_starttls: optional


###     =========================================
###     AUTHENTICATION

auth_method: internal

###     =========================================
###     TRAFFIC SHAPERS

shaper:
  # in B/s
  normal: 1000
  fast: 50000000

###     =========================================
###     ACCESS CONTROL LISTS

acl:
admin:
    user:
        - "admin": "alecyrus.org"
local:
    user_regexp: ""


###     =========================================
###     ACCESS RULES

access:
max_user_sessions:
    all: 10
local:
    local: allow
c2s:
    blocked: deny
    all: allow
c2s_shaper:        
    admin: none
    all: fast
s2s_shaper:
    all: fast
s2s_access:
    all: allow
announce:
    admin: allow
configure:
    admin: allow
muc_admin:
    admin: allow
muc_create:
    local: allow
muc:
    all: allow
pubsub_createnode:
    all: allow
register:
    all: allow
xmlrpcaccess:
    admin : allow

registration_timeout: infinity

###     ========================================
###     DEFAULT LANGUAGE

language: "en"

###     ========================================
###     MODULES

modules:
  mod_admin_extra: []
  mod_adhoc: []
  mod_announce:
    access: announce
  mod_caps: []
  mod_configure: []
  mod_disco: []
  mod_http_bind:
    max_inactivity: 400 
  mod_irc: []
  mod_last: []
  mod_muc:
    access: muc
    access_create: muc_create
    access_persistent: muc_create
    access_admin: muc_admin
  mod_offline: []
  mod_privacy: []
  mod_private: []
  mod_pubsub:
    access_createnode: pubsub_createnode
    ignore_pep_from_offline: true
    last_item_cache: false
    max_items_node: 1000
    plugins:
        - "flat"
        - "hometree"
        - "pep"
  mod_register:
    access: register
  mod_roster: []
  mod_shared_roster: []
  mod_time: []
  mod_vcard: []
  mod_version: []

然后重启ejabberd服务(DEB安装方式),如果是installer安装,桌面上有俩快捷方式,若没有,进入ejabberd安装目录/bin/, 运行相关命令即可

# /etc/init.d/ejabberd restart


注:如果重启不成功,使用以下命令来查看启动服务过程中是哪里出问题,一般都是配置文档
出错,语法,模块错误什么的。

# ejabberdctl live

4:ejabberd xmpp服务器admin账户的注册(DEB安装方式,若是install方式,在安装ejabberd时就创建好了)

# ejabberdctl register admin alecyrus.org YourPassWd

二. Archipel Agent的配置安装

Archipel Agent是需要安装在每台物理机上,物理机上的Virtual Machine Monitor 可以是KVM、Xen、VMware... ,以后如果需要把某台物理机上的全部KVM虚拟机添加到Archipel,那就需要在这台物理机上安装Archipel Agent.

前提:能够正常创建虚拟机,qumu,kvm这些的安装好。

1:下载Archipel以及安装

# git clone https://github.com/ArchipelProject/Archipel.git
# cd Archipel
# ./pull.sh
# easy_install apscheduler sqlalchemy numpy
# cd ArchipelAgent
# ./buildAgent -d
# archipel-initinstall

注:通常在archipel-initinstall加上 -x FQDN(# archipel-initinstall -x alecyrus.org), 意思就是指定这台Physical Hypervisor将要连接的XMPP服务 器 的地址,如果你XMPP服务器和Physical Hypervisor安装在同一台机器上,比如现在,那么Physical Hypervisor 中Archipel的配置没问题,同一台机器,Physical Hypervisor 和XMPP服务器当然能够互相ping通。
但是如果以后XMPP服务器配置好了,你想把其他的Physical Hypervisor 添加到XMPP服务器上让ArchipelClient一并管理,如果还是如此配置,那么这台Physical Hypervisor 就无法识别alecyrus.org, 所以在其他机器安装ArchipelAgent,别忘了在hosts文件中添加alecyrus.org 和XMPP服务器ip的映射。同时,保证XMPP服务器与Physical Hypervisor 能相互ping通。

2:将这台Physical Hypervisor 的ArchipelAgent初始化到XMPP服务器,使用你的XMPP服务器的管理员账号。
# archipel-tagnode -j admin@alecyrus.org -p YourPassWD --create
# archipel-rolesnode -j admin@alecyrus.org -p YourPassWD --create
# archipel-adminaccounts -j admin@alecyrus.org -p YourPassWD --create

3:配置Archipel Agent

编辑/etc/archipel.conf, 添加以下内容

[MODULES]

action_scheduler            = True
centraldb                   = True
geolocalization             = True
hypervisor_health           = True
hypervisor_network          = True
hypervisor_vmcasts          = True
iphone_notification         = False
oomkiller                   = True
snapshoting                 = True
storage                     = True
virtualmachine_appliance    = True
vnc                         = True
xmppserver                  = True
vmparking                   = True  # needs centraldb to be     activated

[CENTRALAGENT]
# centralagent can be :
#  - auto (default) : will be central agent if there is none already started
#  - force : will be central agent (be careful to configure only one of your hypervisors this way)
centralagent               = auto

[VNC]
vnc_certificate_file                        = None
vnc_only_ssl                                = False
vnc_enable_websocket_debug                  = True

注:最后将machine_ip由auto改成这台hypervisor的ip地址,这样方便archipel查看ip地址。

4:重启Archipel

 # /etc/init.d/archipel restart

三. Archipel Client安装

Archipel Client就是一个web应用,通过官方发布的The nightlies版本可以很方便的安装的,但经过测试(Ubuntu 14.04LTS),项目作者把centralAgent也加入admin list后,centralAgent就无法正常安装了,bu
以下命令在之前clone命令的同级目录下进行,即开始这条命令时,ls命令可以可以看到之前的Archipel文件夹。

# wget http://nightlies.archipelproject.org/latest-archipel-client.tar.gz
# tar -xzf latest-archipel-client.tar.gz

四. 最后的工作

进入Archipel目录开启HTTP服务

1:开启8000端口

# python -m SimpleHTTPServer

注:务必进入Archipel目录运行这个命令

2:
打开网址:localhost:8000


登陆信息如上
然后添加安装了Archipel Agent的Physical Hypervisor 的JID...

这个JID的格式可以在archipel.conf 中看到。。如下:

我这里是alecyrus@%(xmpp_server)s,,也就是说JID为:
alecyrus@alecyrus.org

2016-01-18 02:04:30屏幕截图.png

添加完成后,就可以在这里看到你的物理机的虚拟机管理程序了,不过它变了样子

2016-01-18 02:14:08屏幕截图.png

一个Physical Hypervisor就是你的一个联系人,这个联系人下面可以有很多的虚拟机,你也可以把虚拟机添加联系人中。

Done!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,748评论 6 342
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,135评论 2 34
  • 配置运行Nginx服务器用户(组) 用于配置运行Nginx服务器用户(组)的指令是user,其语法格式为: use...
    吃瓜的东阅读 4,480评论 0 41
  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 7,958评论 0 37