全量模式安装手册

简介

首先,所有的蚂蚁蛋项目都需要安装在目录名为mydan下。如:/home/work/mydan。
在这个模式下需要编译安装perl,编译的perl最终会使用在agent的安装上。
该模式是建议安装的模式。

安装

以下以安装centos的/home/work/mydan目录下为例。

编译安装perl:
wget http://www.cpan.org/src/5.0/perl-5.24.0.tar.gz
tar -zxvf perl-5.24.0.tar.gz
cd perl-5.24.0
./Configure -des -Dprefix=/home/work/mydan/perl -Dusethreads -Uinstalluserbinperl
make
make test
make install

自己编译的perl需要安装比较多的木块,可以直接下载编译好的perl,解压到mydan目录下

安装mydan的dan,box,def
cd /home/work/mydan
git clone https://github.com/mydan/mayi.git
cd mayi
/home/work/mydan/perl/bin/perl Makefile.PL
make
make install dan=1 box=1 def=1
如果安装过程中出现异常,可以参看是否和急救模式中的错误一样,并安装对应的处理方式解决。

添加key:
cd /home/work/mydan/etc/agent/auth
ssh-keygen #第一次提问的时机写上要生成key的名字 如: foo ,然后一直按回车。
mv foo foo.key #当前目录下生成两个文件 foo 和foo.pub ,把foo重命名成foo.key

安装dashboard:
cd /home/work/mydan
git clone http://github.com/mydan/dashboard.git
cd dashboard
/home/work/mydan/perl/bin/perl Makefile.PL
make
make test
make install

测试dashboard服务:
/home/work/mydan/perl/bin/perl bin/app.pl -p 5555

启动mydan的bootstrap
/home/work/mydan/dan/bootstrap/bin/bootstrap --install

后台启动dashboard服务
cp /home/work/mydan/dashboard/bin/dashboard.web.5555 /home/work/mydan/dan/bootstrap/exec/dashboard.web.5555

如果需要多个端口可以拷贝多个,然后用nginx负载均衡
cp /home/work/mydan/dashboard/bin/dashboard.web.5555 /home/work/mydan/dan/bootstrap/exec/dashboard.web.5556
cp /home/work/mydan/dashboard/bin/dashboard.web.5555 /home/work/mydan/dan/bootstrap/exec/dashboard.web.5557
请在nginx的location中添加proxy_set_header Host $host:$server_port; , 否则sso跳转回来时会出错,在页面请求安装脚本也会出错。

发布当前编译好的mydan发布到dashboard供agent安装:
/home/work/mydan/dan/tools/release --release v1.0

在浏览器中打开dashboard, 打开install页面,里面有两个地址用于安装客户端,客户端分client和agent,线上服务器安装agent。个人操作电脑安装client。
把dashboard中的install页面把安装命令在对应的服务器上运行即完成agent或者client的安装。

测试调用
/home/work/mydan/dan/tools/rcall -r 10.10.10.1 exec pwd
/home/work/mydan/dan/tools/vssh -r 10.10.10.1

对接sso:
修改 /home/work/mydan/dashboard/config.yml
ssocallback: 'http://sso.mydan.org/login?callback='
cookiekey: 'sid'
ssocallback就是没获取到有效用户时跳转的地址,本次请求dashboard的地址记在callback=之后
cookiekey就是指名要哪个cookiet来查询用户, 比如sso.mydan.org在mydan.org域下面种了一个cookie u,则把cookiekey设置成 cookiekey: u 。 u的值会传到下面的code中

插件 /home/work/mydan/dashboard/code/sso,该插件是一个函数,传入参数就是上面的cookie值,return的值就是通过这个cookie值去sso查询用户,最后把用户名称return。其中用户名称必须和服务器上的用户名一致。

简使用

在浏览器中登陆。
打开settings页面。这个是存放个人公钥的地方,这个用于识别一个用户。
在本地电脑生成自己的公钥私钥对,运行命令 ssh-kengen 生成随便一对key,比如bar。 在自己的家目录中如/home/mydan/.ssh 中有 bar 和bar.pub 文件。把bar重命名成bar.key 。 然后把bar.pub的内容保存在dashboard的setting页面中。
在自己的机器上运行dashboard中install页面的脚本安装client,注意是client。
在哪个dashboard中安装的client,client中都存在该dashboard的信息,需要api调用的时候会去询问这个地址。

如果在这个dashboard中安装了agent。 client用户就可以调用这个agent的了。
但是还差最后一步,就是权限分配,告诉dashboard该用户有某个机器的某个用户权限,方式如下:
/home/work/mydan/dashboard/tools/access --user mydan --add work --access 10.10.1.1
命令的详细使用可以去看手册。

在dashboard机器中运行了上述命令后。在client机器上可以直接调用了,效果和直接在dashboard机器上一样。
/home/work/mydan/dan/tools/rcall -r 10.10.10.1 exec pwd
/home/work/mydan/dan/tools/vssh -r 10.10.10.1