命令行部署#
前提#
在开始前,请配置yum源,使用root用户登陆kdc1,进行基础配置:
ssh root@192.168.1.11
从yum源所在机器获取repo文件:
scp oushu@192.168.1.10:/etc/yum.repos.d/oushu.repo /etc/yum.repos.d/oushu.repo
追加yum源所在机器信息到/etc/hosts文件
安装lava命令行管理工具:
yum clean all
yum makecache
yum install -y lava
创建一个kdchostfile文件,包含cluster中的所有机器:
touch ~/kdchostfile
编辑kdchostfile文件内容如下(集群各机器的hostname):
kdc1
kdc2
和集群内其他机器交换公钥:
lava ssh-exkeys -f ~/kdchostfile -p ********
将repo文件分发给集群内其他机器:
lava scp -f ~/kdchostfile /etc/yum.repos.d/oushu.repo =:/etc/yum.repos.d
注意:所有安装Kerberos的机器hostname必须为全小写,否则会有问题
安装#
执行下列命令安装Kerberos:
lava ssh -f ~/kdchostfile -e "yum install -y krb5-libs krb5-workstation krb5-server"
配置#
文档中默认时候OUSHU.COM作为域名,如果需要修改域名,替换所有配置中的OUSHU.COM。
在 /var/kerberos/krb5kdc文件夹修改kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
OUSHU.COM = {
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
max_renewable_life = 7d
supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
如果需要修改kdc启动端口,则修改kdc_ports和kdc_tcp_ports。
在 /etc文件夹修改krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = OUSHU.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = true
clockskew = 120
udp_preference_limit = 1
[realms]
OUSHU.COM = {
kdc = 192.168.1.11
kdc = 192.168.1.12
admin_server = 192.168.1.11
admin_server = 192.168.1.12
}
[domain_realm]
.oushu.com = OUSHU.COM
oushu.com = OUSHU.COM
如果需要修改log配置,则修改logging标签下的字段。
节点ip需要根据实际情况修改,域名配置需要和上一个域名修改匹配。
在 /var/kerberos/krb5kdc文件夹修改kadm5.acl
*/admin@OUSHU.COM *
通过正则匹配管理员principal,域名配置需要和上一个域名修改匹配。
分发三个配置文件:
lava scp -h kdc2 /var/kerberos/krb5kdc/kdc.conf =:/var/kerberos/krb5kdc/kdc.conf
lava scp -h kdc2 /etc/krb5.conf =:/etc/krb5.conf
lava scp -h kdc2 /var/kerberos/krb5kdc/kadm5.acl =:/var/kerberos/krb5kdc/kadm5.acl
启动#
在kdc master节点kdc1创建kdc数据库(这一步需要创建密码):
kdb5_util create -s -r OUSHU.COM
在kdc master节点kdc1启动kdc:
systemctl start kadmin krb5kdc
在kdc master节点kdc1创建同步用户:
kadmin.local addprinc -randkey host/kdc1
kadmin.local ktadd host/kdc1
kadmin.local addprinc -randkey host/kdc2
kadmin.local ktadd host/kdc2
lava scp -h kdc2 /etc/krb5.keytab =:/etc/krb5.keytab
lava scp -h kdc2 /var/kerberos/krb5kdc/.k5.OUSHU.COM =:/var/kerberos/krb5kdc/.k5.OUSHU.COM
在kdc standby节点kdc2开启同步进程:
lava ssh -h kdc2 -e "sudo echo -e \"host/kdc1@OUSHU.COM\" | tee /var/kerberos/krb5kdc/kpropd.acl"
lava ssh -h kdc2 -e "sudo echo -e \"host/kdc2@OUSHU.COM\" | tee -a /var/kerberos/krb5kdc/kpropd.acl"
lava ssh -h kdc2 -e "sudo systemctl start kprop"
在kdc master节点kdc1执行同步:
sudo kdb5_util dump /var/kerberos/krb5kdc/master.dump
sudo kprop -f /var/kerberos/krb5kdc/master.dump -d -P 754 kdc2
在kdc standby节点kdc2启动kdc:
lava ssh -h kdc2 -e "sudo systemctl start krb5kdc"
验证安装结果#
查询principal列表
在kdc master节点kdc1执行:
sudo kadmin.local listprincs
正常列出现有principal,则证明部署完成。
使用#
常用功能 |
命令 |
---|---|
启动节点 |
sudo systemctl start krb5kdc |
停止节点 |
sudo systemctl stop krb5kdc |
注册到skylab(可选)#
Kerberos将要安装的机器需要通过机器管理添加到skylab中,如果您尚未添加,请参考注册机器。
在kdc1节点修改/usr/local/oushu/lava/conf配置server.json
,替换localhost为skylab的服务器ip,具体skylab的基础服务lava安装步骤请参考:lava安装。
{
"server": "localhost:1612",
"admin": "localhost:1652"
}
创建一个request文件,包含kdc cluster信息:
touch ~/kdc-register.json
编辑json文件内容如下:
{
"data": {
"name": "kdcserver",
"group_roles": [
{
"role": "kdc.master",
"cluster_name": "kdc",
"group_name": "kdcmaster",
"machines": [
{
"id": 1,
"name": "kdc1",
"subnet": "lava",
"data_ip": "192.168.1.11",
"manage_ip": "192.168.1.11",
"assist_port": 1622,
"ssh_port": 22
}
]
},
{
"role": "kdc.standby",
"cluster_name": "kdc",
"group_name": "kdcstandby",
"machines": [
{
"id": 2,
"name": "kdc2",
"subnet": "lava",
"data_ip": "192.168.1.12",
"manage_ip": "192.168.1.12",
"assist_port": 1622,
"ssh_port": 22
}
]
}
]
}
}
配置文件说明,整个json分为3部分:
第一部分name,为集群名称,个性化填写。
第二部分为group_roles,对于kdc为2个角色,kdc.master和kdc.standby,不可修改。
第三部分,为每个角色添加机器,需要添加的机器信息可以通过下面的方式获得。
在平台基础组件lava所安装的机器执行(端口和用户名按照lava配置修改):
psql lavaadmin -p 4432 -U oushu -c "select m.id,m.name,s.name as subnet,m.private_ip as data_ip,m.public_ip as manage_ip,m.assist_port,m.ssh_port from machine as m,subnet as s where m.subnet_id=s.id;"
获取到所需的机器信息,根据服务角色对应的节点,将机器信息添加到machines数组中。
在kdc1节点调用lava命令注册集群:
lava login -u oushu -p Oushu6@China
lava onprem-register service -s KDC -f ~/kdc-register.json
如果返回值为:
Add service by self success
则表示注册成功,如果有错误信息,请根据错误信息处理。
例如skylab部署在192.168.1.10,访问
http://192.168.1.10:3000/main/Deploy/kdc
从页面登录后,在自动部署模块对应服务中可以查看到新添加的集群,同时列表中会实时监控kdc进程在机器上的状态。