Ambari集成Kerberos報錯彙總
java
做者:尹正傑 node
版權聲明:原創做品,謝絕轉載!不然將追究法律責任。mysql
一.查看報錯的配置信息步驟sql
1>.點擊Test Kerberos Client,查看相應日誌信息
apache
2>.查看具體是哪臺機器出現問題json
3>.查看node101.yinzhengjie.org.cn的報錯日誌api
4>.查看對應的報錯信息服務器
二.Error occured during stack advisor command invocation: Cannot create /var/run/ambari-server/stack-recommendationssession
報錯分析:app
根據報錯的提示信息,說是沒法建立對應的文件或者目錄!
解決方案:
既然他無法建立的話,那咱們手動幫他一把唄!咱們登陸到報錯的服務器,而後手動幫他一把!
[root@node101 ~]# mkdir /var/run/ambari-server/stack-recommendations #根據報錯日誌的提示信息,建立對應的目錄 [root@node101 ~]# [root@node101 ~]# chmod 777 /var/run/ambari-server/stack-recommendations -R #你們千萬要記住,這個受權操做是必需要作了的喲!不然你會發現一些奇葩的坑!他會不斷重複的在上面咱們建立好的目錄下建立子目錄。 [root@node101 ~]#
三.STDERR: ipa: ERROR: The host 'node101.yinzhengjie.org.cn' does not exist to add a service to.
報錯分析:
根據報錯的提示的信息說是對應的「node101.yinzhengjie.org.cn」是否存在。一開始我覺得是KDC服務器沒有配置「/etc/hosts」對應的本地解析記錄呢。 添加對應的解析後,充實此步的按照步驟發現問題依舊沒有獲得很好的解決,那究竟是由於啥?仔細一想,既然這是Kerberos配置的話,是否是意味着Kerberos服務器中必須得有該服務器的憑據呢?我去查閱了一些,發現果然沒有啊!具體操做以下(須要登陸Kerberos服務器操做):
[root@node100 ~]# klist Ticket cache: KEYRING:persistent:0:0 Default principal: admin@YINZHENGJIE.COM Valid starting Expires Service principal 12/12/2018 06:53:24 12/13/2018 06:53:22 krbtgt/YINZHENGJIE.COM@YINZHENGJIE.COM [root@node100 ~]# [root@node100 ~]# kadmin.local Authenticating as principal admin/admin@YINZHENGJIE.COM with password. kadmin.local: listprincs admin@YINZHENGJIE.COM K/M@YINZHENGJIE.COM krbtgt/YINZHENGJIE.COM@YINZHENGJIE.COM kadmin/node100.yinzhengjie.com@YINZHENGJIE.COM kadmin/admin@YINZHENGJIE.COM kadmin/changepw@YINZHENGJIE.COM kiprop/node100.yinzhengjie.com@YINZHENGJIE.COM ldap/node100.yinzhengjie.com@YINZHENGJIE.COM host/node100.yinzhengjie.com@YINZHENGJIE.COM WELLKNOWN/ANONYMOUS@YINZHENGJIE.COM dogtag/node100.yinzhengjie.com@YINZHENGJIE.COM HTTP/node100.yinzhengjie.com@YINZHENGJIE.COM DNS/node100.yinzhengjie.com@YINZHENGJIE.COM ipa-dnskeysyncd/node100.yinzhengjie.com@YINZHENGJIE.COM yinzhengjie-kerberos@YINZHENGJIE.COM host/node103.yinzhengjie.org.cn@YINZHENGJIE.COM host/node102.yinzhengjie.org.cn@YINZHENGJIE.COM kadmin.local:
解決方法:
既然沒有的話,那咱們就讓他有唄,具體操做以下:
[root@node102 ~]# ipa-client-install --domain=YINZHENGJIE.COM --server=node100.yinzhengjie.com --realm=YINZHENGJIE.COM --principal=admin@YINZHENGJIE.COM --enable-dns-updates #開始安裝客戶端程序,參數意思下面會詳細解釋! WARNING: ntpd time&date synchronization service will not be configured as conflicting service (chronyd) is enabled Use --force-ntpd option to disable it and force configuration of ntpd Autodiscovery of servers for failover cannot work with this configuration. If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure. Proceed with fixed values and no DNS discovery? [no]: yes #注意,這裏須要輸入的是yes喲! Client hostname: node102.yinzhengjie.org.cn Realm: YINZHENGJIE.COM DNS Domain: yinzhengjie.com IPA Server: node100.yinzhengjie.com BaseDN: dc=yinzhengjie,dc=com Continue to configure the system with these values? [no]: yes #注意,這裏須要輸入的是yes喲! Skipping synchronizing time with NTP server. Password for admin@YINZHENGJIE.COM: #對面的小哥哥小姐姐往這裏看,這裏是須要你輸入管理員的用戶名密碼,也就是你在安裝IPA-Server時配置的密碼!如今知道爲何我當時如此強調要記住他的緣由了吧! Successfully retrieved CA cert Subject: CN=Certificate Authority,O=YINZHENGJIE.COM Issuer: CN=Certificate Authority,O=YINZHENGJIE.COM Valid From: 2018-12-12 11:15:53 Valid Until: 2038-12-12 11:15:53 Enrolled in IPA realm YINZHENGJIE.COM Created /etc/ipa/default.conf New SSSD config will be created Configured sudoers in /etc/nsswitch.conf Configured /etc/sssd/sssd.conf Configured /etc/krb5.conf for IPA realm YINZHENGJIE.COM trying https://node100.yinzhengjie.com/ipa/json [try 1]: Forwarding 'schema' to json server 'https://node100.yinzhengjie.com/ipa/json' trying https://node100.yinzhengjie.com/ipa/session/json [try 1]: Forwarding 'ping' to json server 'https://node100.yinzhengjie.com/ipa/session/json' [try 1]: Forwarding 'ca_is_enabled' to json server 'https://node100.yinzhengjie.com/ipa/session/json' Systemwide CA database updated. Hostname (node102.yinzhengjie.org.cn) does not have A/AAAA record. Failed to update DNS records. Missing A/AAAA record(s) for host node102.yinzhengjie.org.cn: 172.30.1.102. Missing reverse record(s) for address(es): 172.30.1.102. Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub [try 1]: Forwarding 'host_mod' to json server 'https://node100.yinzhengjie.com/ipa/session/json' Could not update DNS SSHFP records. SSSD enabled Configured /etc/openldap/ldap.conf Configured /etc/ssh/ssh_config Configured /etc/ssh/sshd_config Configuring yinzhengjie.com as NIS domain. Client configuration complete. The ipa-client-install command was successful You have new mail in /var/spool/mail/root [root@node102 ~]#
[root@node100 ~]# kadmin.local Authenticating as principal admin/admin@YINZHENGJIE.COM with password. kadmin.local: listprincs #上述操做以前查看全部用戶信息以下 admin@YINZHENGJIE.COM K/M@YINZHENGJIE.COM krbtgt/YINZHENGJIE.COM@YINZHENGJIE.COM kadmin/node100.yinzhengjie.com@YINZHENGJIE.COM kadmin/admin@YINZHENGJIE.COM kadmin/changepw@YINZHENGJIE.COM kiprop/node100.yinzhengjie.com@YINZHENGJIE.COM ldap/node100.yinzhengjie.com@YINZHENGJIE.COM host/node100.yinzhengjie.com@YINZHENGJIE.COM WELLKNOWN/ANONYMOUS@YINZHENGJIE.COM dogtag/node100.yinzhengjie.com@YINZHENGJIE.COM HTTP/node100.yinzhengjie.com@YINZHENGJIE.COM DNS/node100.yinzhengjie.com@YINZHENGJIE.COM ipa-dnskeysyncd/node100.yinzhengjie.com@YINZHENGJIE.COM yinzhengjie-kerberos@YINZHENGJIE.COM host/node103.yinzhengjie.org.cn@YINZHENGJIE.COM host/node102.yinzhengjie.org.cn@YINZHENGJIE.COM kadmin.local: kadmin.local: kadmin.local: listprincs #通過上述操做以後,發現node101.yinzhengjie.org.cn的憑據出現了,具體信息以下: admin@YINZHENGJIE.COM K/M@YINZHENGJIE.COM krbtgt/YINZHENGJIE.COM@YINZHENGJIE.COM kadmin/node100.yinzhengjie.com@YINZHENGJIE.COM kadmin/admin@YINZHENGJIE.COM kadmin/changepw@YINZHENGJIE.COM kiprop/node100.yinzhengjie.com@YINZHENGJIE.COM ldap/node100.yinzhengjie.com@YINZHENGJIE.COM host/node100.yinzhengjie.com@YINZHENGJIE.COM WELLKNOWN/ANONYMOUS@YINZHENGJIE.COM dogtag/node100.yinzhengjie.com@YINZHENGJIE.COM HTTP/node100.yinzhengjie.com@YINZHENGJIE.COM DNS/node100.yinzhengjie.com@YINZHENGJIE.COM ipa-dnskeysyncd/node100.yinzhengjie.com@YINZHENGJIE.COM yinzhengjie-kerberos@YINZHENGJIE.COM host/node103.yinzhengjie.org.cn@YINZHENGJIE.COM host/node102.yinzhengjie.org.cn@YINZHENGJIE.COM host/node101.yinzhengjie.org.cn@YINZHENGJIE.COM kadmin.local:
四.STDERR: ipa: ERROR: Host 'node101.yinzhengjie.org.cn' does not have corresponding DNS A/AAAA record
錯誤分析:
根據上述的問題描述,說明DNS並無對應的解析記錄,這個時候咱們須要上DNS服務器上手動建立對應的zone文件。默認狀況下IPA已經幫咱們搭建好了DNS服務器,咱們只須要修改對應的配置文件便可。
[root@node100 named]# cat /etc/named.conf options { // turns on IPv6 for port 53, IPv4 is on by default for all ifaces listen-on-v6 {any;}; listen-on port 53 { any; }; // Put files that named is allowed to write in the data/ directory: directory "/var/named"; // the default dump-file "data/cache_dump.db"; statistics-file "data/named_stats.txt"; memstatistics-file "data/named_mem_stats.txt"; // Any host is permitted to issue recursive queries #allow-recursion { any; }; allow-query { any; }; tkey-gssapi-keytab "/etc/named.keytab"; pid-file "/run/named/named.pid"; dnssec-enable yes; dnssec-validation no; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; /* If you want to enable debugging, eg. using the 'rndc trace' command, * By default, SELinux policy does not allow named to modify the /var/named directory, * so put the default debug log file in data/ : */ logging { channel default_debug { file "data/named.run"; severity dynamic; print-time yes; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; /* WARNING: This part of the config file is IPA-managed. * Modifications may break IPA setup or upgrades. */ dyndb "ipa" "/usr/lib64/bind/ldap.so" { uri "ldapi://%2fvar%2frun%2fslapd-YINZHENGJIE-COM.socket"; base "cn=dns, dc=yinzhengjie,dc=com"; server_id "node100.yinzhengjie.com"; auth_method "sasl"; sasl_mech "GSSAPI"; sasl_user "DNS/node100.yinzhengjie.com"; }; /* End of IPA-managed part. */ [root@node100 named]#
解決方案:
既然咱們肯定了問題的方向,咱們能夠經過上面的「/etc/named.conf」的配置文件能夠明顯的看出來有一個叫"/etc/named.rfc1912.zones"的配置文件。咱們須要編輯他,指定對應的域名文件。
[root@node100 named]# cat /etc/named.rfc1912.zones // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. // zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; zone "yinzhengjie.org.cn" IN { type master; file "yinzhengjie.org.cn.zone"; }; zone "1.30.172.in-addr.arpa" IN { type master; file "172.30.1.zone"; }; [root@node100 named]#
編輯上述的配置文件後,咱們會發現得去「/var/named」(DNS默認的zone文件的存放路徑)中建立對應的"yinzhengjie.org.cn.zone"和"172.30.1.zone"這兩個配置文件。具體內容以下:
[root@node100 named]# cat 172.30.1.zone $TTL 1D @ IN SOA @ node100.yinzhengjie.org.cn ( 20181201; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 101 IN PTR node101.yinzhengjie.org.cn. 102 IN PTR node102.yinzhengjie.org.cn. 103 IN PTR node103.yinzhengjie.org.cn. [root@node100 named]#
[root@node100 named]# cat yinzhengjie.org.cn.zone $TTL 1D @ IN SOA @ yinzhengjie.org.cn. ( 20181201; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.yinzhengjie.org.cn. ns IN A 172.30.1.100 node101 IN A 172.30.1.101 node102 IN A 172.30.1.102 node103 IN A 172.30.1.103 [root@node100 named]#
除了手動修改配置文件,咱們還能夠在IPA Server的Web UI界面修改DNS的反向解析,以下圖所示:
五. STDERR: ipa: ERROR: All nameservers failed to answer the query node101.yinzhengjie.org.cn. IN A: Server 127.0.0.1 UDP port 53 answered SERVFAIL
報錯分析:
據上圖報錯所述,查詢「node101.yinzhengjie.org.cn」的解析失敗啦!
解決方案:
這個時候咱們須要登陸IPA-Server的Web UI界面,查看相應的DNS記錄是否更新,若是沒有更新須要我們手動點擊更新一下喲!更新以後,咱們在第五步的哪一個報錯時的數據信息都會同步過來,以下圖所示:
六.ERROR: service with name "HTTP/node101.yinzhengjie.org.cn@YINZHENGJIE.COM" already exists
錯誤分析:
根據報錯信息提示說是憑據已經存在啦!
解決方案:
這種解決辦法有兩個,第一就是去KDC服務器上刪除對應的憑據,或者是從新啓用Kerberos。恢復初始的配置信息。
七.ipa: ERROR: invalid 'login': can be at most 32 characters
錯誤分析:
這是因爲服務器在建立憑據時,發現用戶的字符串超過了32個字符。
解決方案:
咱們在部署的時候,咱們在進入到這一步報錯以前,就應該注意設置的字符串長度是否會超出對應的長度,我以前就遇到過這樣的問題,所以在配置時我特地修改瞭如下參數。
八.sudo: sorry, you must have a tty to run sudo
報錯分析:
出現上述的報錯信息,估計作運維的小夥伴一眼就知道是咋回事。意思就是sudo默認須要tty終端。註釋掉就能夠在後臺執行了。
解決方案:
咱們須要編輯「/etc/sudoers」文件,具體操做以下所示:
[root@node101 ~]# grep "#Defaults" /etc/sudoers #Defaults requiretty #編輯上述文件,將改行加上注視便可! [root@node101 ~]# [root@node101 ~]# [root@node101 ~]# xrsync.sh /etc/sudoers =========== node102.yinzhengjie.org.cn : /etc/sudoers =========== 命令執行成功 =========== node103.yinzhengjie.org.cn : /etc/sudoers =========== 命令執行成功 [root@node101 ~]#
九.sudo: no tty present and no askpass program specified
報錯分析:
上述這個是因爲賬號並無開啓免密碼致使的,這個時候你就得思考部署平臺的用戶是誰,默認狀況下是ambari,若是你想確認的話也很簡單,還記得咱們訪問Ambari的端口是8080嗎?咱們知道找到8080對應的進程的維護者是誰就知道這個帳號是誰啦!以下所示:
[root@node101 ~]# netstat -untalp | grep 8080 tcp6 0 0 :::8080 :::* LISTEN 4343/java tcp6 0 0 172.30.1.101:8080 172.30.1.2:54966 ESTABLISHED 4343/java tcp6 0 0 172.30.1.101:8080 172.30.1.2:54979 ESTABLISHED 4343/java [root@node101 ~]# [root@node101 ~]# [root@node101 ~]# ps -ef | grep 4343 ambari 4343 1 3 Dec17 ? 01:03:55 /yinzhengjie/softwares/jdk/bin/java -server -XX:NewRatio=3 -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -Dsun.zip.disableMemoryMapping=true -Xms512m -Xmx2048m -XX:MaxPermSize=128m -Djava.security.auth.login.config=/etc/ambari-server/conf/krb5JAASLogin.conf -Djava.security.krb5.conf=/etc/krb5.conf -Djavax.security.auth.useSubjectCredsOnly=false -cp /etc/ambari-server/conf:/usr/lib/ambari-server/*:/usr/share/java/mysql-connector-java.jar org.apache.ambari.server.controller.AmbariServer root 21376 19024 0 13:40 pts/3 00:00:00 grep --color=auto 4343 [root@node101 ~]#
解決方案:
既然咱們已經知道了用戶是誰,那就開始解決問題被,仍是須要編輯「/etc/sudoers」這個配置文件。
[root@node101 ~]# hostname node101.yinzhengjie.org.cn [root@node101 ~]# [root@node101 ~]# grep "#Defaults" /etc/sudoers #Defaults requiretty [root@node101 ~]# [root@node101 ~]# [root@node101 ~]# grep ambari /etc/sudoers ambari ALL=NOPASSWD:ALL [root@node101 ~]# [root@node101 ~]#