add kerberos docker

This commit is contained in:
LingZhaoHui 2022-07-15 21:19:10 +08:00
parent 17a5020391
commit f3f5b2709b
7 changed files with 133 additions and 0 deletions

40
kerberos/Dockerfile Normal file
View File

@ -0,0 +1,40 @@
FROM ubuntu:xenial
ENV DEBIAN_FRONTEND noninteractive
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt clean
RUN apt update
RUN apt install -y ntp python-dev python-pip python-wheel python-setuptools python-pkg-resources krb5-admin-server krb5-kdc
RUN apt install vim -y
RUN rm -rf /var/lib/apt/lists/*
RUN mkdir -p /var/log/supervisord/
RUN mkdir /app/
RUN pip install supervisor==4.2.4
COPY ./server/krb5.conf /etc/krb5kdc/kdc.conf
COPY ./server/kadm5.acl /etc/krb5kdc/kadm5.acl
COPY ./client/krb5.conf /etc/krb5.conf
COPY ./start.sh /app/start.sh
COPY ./supervisord.conf /etc/supervisord.conf
WORKDIR /app
CMD ["/bin/bash", "/app/start.sh"]

18
kerberos/client/krb5.conf Normal file
View File

@ -0,0 +1,18 @@
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = HADOOP.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
HADOOP.COM = {
kdc = krb5-kdc-server:88
admin_server = krb5-kdc-server
}

7
kerberos/run.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
docker stop kerberos
docker rm kerberos
docker run -d --name=kerberos kerberos:1.0.0

View File

@ -0,0 +1 @@
*/admin@HADOOP.COM *

14
kerberos/server/krb5.conf Normal file
View File

@ -0,0 +1,14 @@
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
HADOOP.COM = {
#master_key_type = aes256-cts
acl_file = /etc/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/krb5kdc/kadm5.keytab
max_renewable_life = 7d 0h 0m 0s
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}

30
kerberos/start.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
FQDN="hadoop.com"
ADMIN="admin"
PASS="airflow"
KRB5_KTNAME=/etc/admin.keytab
cat /etc/hosts
echo "hostname: ${FQDN}"
# create kerberos database
echo -e "${PASS}\n${PASS}" | kdb5_util create -s
# create admin
echo -e "${PASS}\n${PASS}" | kadmin.local -q "addprinc ${ADMIN}/admin"
# create airflow
echo -e "${PASS}\n${PASS}" | kadmin.local -q "addprinc -randkey airflow"
echo -e "${PASS}\n${PASS}" | kadmin.local -q "addprinc -randkey airflow/${FQDN}"
kadmin.local -q "ktadd -k ${KRB5_KTNAME} airflow"
kadmin.local -q "ktadd -k ${KRB5_KTNAME} airflow/${FQDN}"
/usr/local/bin/supervisord -n -c /etc/supervisord.conf

23
kerberos/supervisord.conf Normal file
View File

@ -0,0 +1,23 @@
[supervisord]
logfile=/var/log/supervisord/supervisord.log ; supervisord log file
logfile_maxbytes=50MB ; maximum size of logfile before rotation
logfile_backups=10 ; number of backed up logfiles
loglevel=error ; info, debug, warn, trace
pidfile=/var/run/supervisord.pid ; pidfile location
nodaemon=false ; run supervisord as a daemon
minfds=1024 ; number of startup file descriptors
minprocs=200 ; number of process descriptors
user=root ; default user
childlogdir=/var/log/supervisord/ ; where child log files will live
[program:krb5-kdc]
command=service krb5-kdc start
autostart=true
autorestart=true
[program:krb5-admin-server]
command=service krb5-admin-server start
autostart=true
autorestart=true
[supervisorctl]