zoukankan      html  css  js  c++  java
  • 正式生产环境下hadoop集群的DNS+NFS+ssh免password登陆配置

    博客地址:http://www.loveweir.com/

    环境虚拟机centos6.5

    主机名h1  IP 192.168.137.11  作为DNS FNS的server

    主机名h2  IP 192.168.137.12

    主机名h3  IP 192.168.137.13


    建立DNS(为了代替集群改动hosts带来的大量反复工作)

    1.安装DNS在h1上面

    检查命令:

    rpm –q bind

    rpm -q bind-chroot

    安装命令:

    yum -y install bind bind-chroot

    2. 改动/etc/named.conf

    主要改动这两个地方注意红色改动的部分

    listen-on port 53 { any;};

    allow-query     { any; };

    文件全内容:

    //

    // named.conf

    //

    // Provided by Red Hat bind package to configure the ISCBIND named(8) DNS

    // server as a caching only nameserver (as a localhostDNS resolver only).

    //

    // See /usr/share/doc/bind*/sample/ for example namedconfiguration files.

    //

     

    options {

            listen-onport 53 { any; };

            listen-on-v6port 53 { ::1; };

            directory       "/var/named";

            dump-file       "/var/named/data/cache_dump.db";

           statistics-file "/var/named/data/named_stats.txt";

           memstatistics-file "/var/named/data/named_mem_stats.txt";

            allow-query     { any; };

            recursionyes;

     

            dnssec-enableyes;

            dnssec-validationyes;

            dnssec-lookasideauto;

     

            /* Path toISC DLV key */

            bindkeys-file"/etc/named.iscdlv.key";

     

            managed-keys-directory"/var/named/dynamic";

    };

     

    logging {

            channeldefault_debug {

                   file "data/named.run";

                    severity dynamic;

            };

    };

     

    zone "." IN {

            type hint;

            file"named.ca";

    };

     

    include "/etc/named.rfc1912.zones";

    include "/etc/named.root.key";

    3. 改动/etc/named.rfc1912.zones

    正反配置红色部分

    // named.rfc1912.zones:

    //

    // Provided by Red Hat caching-nameserver package

    //

    // ISC BIND named zone configuration for zonesrecommended by

    // RFC 1912 section 4.1 : localhost TLDs and addresszones

    // andhttp://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 namedconfiguration 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 "weir.com" IN {

           type master;

           file "weir.com.zone";

           allow-update { none; };

    };

    zone "137.168.192.in-addr.arpa" IN {

           type master;

            file"137.168.192.in-addr.zone"; 

            allow-update{ none; };

    };

    4.在/var/named文件夹下创建weir.com.zone137.168.192.in-addr.zon文件(这里非常重要每一个地方都要看清楚怎么设置)

    这里是将named.localhost  拷贝之后做的改动

    cp -p named.localhost weir.com.zone

    cp -p named.localhost 137.168.192.in-addr.zone

    weir.com.zone文件内容:

    $TTL 86400

    @    IN    SOA h1.weir.com. chizk.www.weir.com. (

         0 ; serial (d.adams)

         1D ; refresh

         1H ; retry

         1W ; expiry

         3H ) ; minimum

    @    IN    NS h1.weir.com.

    h1.weir.com. IN A 192.168.137.11

    h2.weir.com. IN A 192.168.137.12

    h3.weir.com. IN A 192.168.137.13

    h4.weir.com. IN A 192.168.137.14

    h5.weir.com. IN A 192.168.137.15

    h6.weir.com. IN A 192.168.137.16

     

    137.168.192.in-addr.zone文件内容:

    $TTL 86400

    @    IN    SOA  h1.weir.com. chizk.www.weir.com. (

         0 ; serial (d.adams)

         1D ; refresh

         1H ; retry

         1W ; expiry

         3H ) ; minimum

    @    IN    NS h1.weir.com.

    11 IN PTR h1.weir.com.

    12 IN PTR h2.weir.com.

    13 IN PTR h3.weir.com.

    14 IN PTR h4.weir.com.

    15 IN PTR h5.weir.com.

    16 IN PTR h6.weir.com.

    改动正向文件和反向文件属组

    [root@h1 named]# chgrp named weir.com.rev

    [root@h1 named]# chgrp named weir.com.zone

    5. 加入DNS域名serverip(这里注意改动/etc/resolv.conf是无用的,重新启动电脑就失效了)

    先说h1电脑,由于是DNSserver所以我没有配置这一项 。这里可能与我的网络连接有关系


    以下说其它节点都例如以下配置:


    这里须要找到/etc/sysconfig/network-scripts/ifcfg-eth0

    主要是增加DNS1=192.168.137.11

    完整内容:

    DEVICE=eth0

    TYPE=Ethernet

    UUID=5a32d5ab-af65-44bc-9d21-c757fb44add3

    ONBOOT=yes

    NM_CONTROLLED=yes

    BOOTPROTO=none

    IPADDR=192.168.137.12

    PREFIX=16

    GATEWAY=192.168.137.1

    DEFROUTE=yes

    IPV4_FAILURE_FATAL=yes

    IPV6INIT=no

    NAME="System eth0"

     

     

    HWADDR=08:00:27:17:25:7F

    LAST_CONNECT=1402057925

     

    DNS1=192.168.137.11


    6.启动DNS(防火墙关闭)

    service named start

      自己主动开启:

    查看:chkconfig –listnamed

    设置启动级别:chkconfig --level 123456 named on

    7.測试:

    nslookup h1.weir.com

    nslookup 192.168.137.12

    host h1.weir.com

    host 192.168.137.12

    至此DNS配置完毕。



    配置NFS

    rw

    同意NFS卷上的读和写请求,默认是不同意不论什么请求,还能够使用ro选项

    sync

    仅在改动被提交到稳定的存储器后响应请求,在这个版本号及将来的版本号中,sync是默认的,假设须要async的话必须明白地指出。为了帮助系统管理员察觉到这个改变,假设既没有指定sync也没有指定async的话,“exportfs”将会给出一个警告信息

    no_wdelay

    假设设置了async这个选项就不起作用。正常情况下,假设NFSserver怀疑有还有一个相关的写请求正在处理或立即就要达到。NFSserver将略微延迟提交写请求到磁盘,这就同意使用一个操作提交多个写请求到磁盘。这样能够改善性能。假设NFSserver接收到的主要是些独立的小请求。这个行为的确会减少性能。因此可将no_wdelay关闭。默认能够是使用wdelay选项进行明白地请求

    no_root_squash

    从uid/gid 0到匿名的uid/gid的root_squash映射请求,no_root_squash关闭了root squashing

    insecure

    insecure选项同意NFSclient不使用NFS保留的port

    no_subtree_check

    这个选项启用了subtree检查,这样就再加入了一层安全系数,可是在某些环境下不可靠。

    假设文件系统的子文件夹被导出了,可是整个文件系统是不行的,server不但必须检查訪问的是适当的文件系统中的文件(非常easy)并且还要检查导出树中的文件(比較困难),这个检查就叫做subtree_check。

    为了运行这个检查,server必须提供一些关于文件位置的信息。在訪问的文件被重命名且被一个client打开时可能引起问题。(在很多简单的实例中它仍然能够工作)

    假设文件系统导出时使用了no_root_squash选项(參考以下的内容)。subtree检查还可用于确保文件夹内的文件仅仅有root有权訪问,即使文件本身同意很多其它的人訪问。


    1.      安装NFS

    检查:

    rpm -qa | grep nfs

    rpm -qa | grep rpcbind

    没有安装:

    yum install nfs-utils rpcbind 

    2.   启动NFS

    检查:

    service nfs status

        servicerpcbind status

    启动:

    service nfs start

       开机自启动:

         chkconfig  --level 123456 nfs on

         chkconfig  --level 123456 rpcbindon


    3.      设置共享文件夹

    这里任意。比如:/home/gx

    在/etc/exports 里面加入:

    /home/gx *(insecure,sync,rw,no_root_squash)

        重新启动rpcbind和nfs

          service rpcbind restart

           service nfs restart

    查看一下:

       showmount -elocalhost

    4.其它节点(client)

      建立挂载点。比方在根文件夹下mkdir/nfs_share

      命令:mount -t nfs 192.168.137.11:/home/gx  /nfs_share/

      測试:在h1上的文件夹下创建文件在其它节点是否看得到

    5开机自己主动挂载nfs共享文件夹

    改动/etc/fstab文件

    在最后增加:

    192.168.137.11:/home/gx  /nfs_share            nfs     defaults        1 1

     

    #

    # /etc/fstab

    # Created by anaconda on Tue May 27 12:29:32 2014

    #

    # Accessible filesystems, by reference, are maintainedunder '/dev/disk'

    # See man pages fstab(5), findfs(8), mount(8) and/orblkid(8) for more info

    #

    /dev/mapper/vg_weir-lv_root /                       ext4    defaults        1 1

    UUID=4ea6963a-f2cd-4391-8808-d6bd76ee1125 /boot                   ext4    defaults        1 2

    /dev/mapper/vg_weir-lv_swap swap                    swap    defaults        0 0

    tmpfs                  /dev/shm                tmpfs   defaults        0 0

    devpts                 /dev/pts               devpts  gid=5,mode=620  0 0

    sysfs                  /sys                    sysfs   defaults        0 0

    proc                   /proc                   proc    defaults        0 0

     

    192.168.137.11:/home/gx  /nfs_share            nfs     defaults        1 1



    至此NFS配置完毕。


    6.实现nfs共享ssh密钥

       这里须要了解ssh免password登陆的原理。

       我大致简单说一下:

    ssh-keygen -t rsa  产生私钥和公钥。id_rsa(私钥)和id_rsa.pub(公钥)

       比方:h1电脑须要免password登陆到h2电脑,须要在h1上面的~/.ssh/里面产生私钥和公钥 将公钥复制到h2的~/.ssh/里面而且改动名字为authorized_keys。

    这样就能够用ssh 192.168.137.12 登录到h2电脑里面 第一次会提示输入password。之后就不会了。

    假设想实现相互免password登陆那就是在h2上面产生公钥私钥 ,把公钥复制到h1上面

    假设想实现h1到h1的免password登陆就直接拷贝公钥在自己的~/.ssh/下并取名为authorized_keys。

    那么我们怎么实现nfs共享文件夹的办法来实现ssh免password登陆呢?

    事实上就是把各自的公钥放在共享文件夹里面,然后让不同的机器节点来共享文件夹

    里面拿公钥到自己的~/.ssh/文件夹以下就能够做到了。这样能够省去一些反复的操作。

    这里有一种方式叫做链接文件命令:ln  有软连接和硬链接之分

    这里最方便的做法是在h1的共享文件夹里面建立authorized_keys文件把全部节点的公钥信息都放在这里。不断累加。仅仅要有一台电脑连进来就添加这个公钥文件和新电脑的软连接设置。其它节点都不须要去配置为能够实现全部节点的ssh免password登陆。

    我想分析到这里大家已经能够自己完毕了。

    须要做的是:

    1.软连接建立

    2.把新加电脑产生的公钥追加给共享文件夹的authorized_keys文件里就可以

     眼下问题点:

    软连接ssh免password登陆不成功,仍然要求输入password,不知道是我配置问题。还是什么问题。我的做法是:

    将h2,h3上面的公钥加到h1de的~/.ssh/authorized_keys上面

    ssh h2.weir.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    ssh h3.weir.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    内容为:


    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwkLRj4s+OXY7y8W9/3MOaMGMxE3M37/ySm28gwSpxs4AibAPjZY9rXvld5fJWl99iVeLMTRn39cryXknqf7gqy32EZ6kledh5Au7kv96XX3Cbwr5YIWoTggo9q9tG8E7J268QpV/2Zi1lOM6EEnLPUfpU6UWW2l8Ay4a2AyrWoIs2s6ffqPc/5xOnOnvAAmc285P75UmG0Cr/BVapdMi7z5WUUioPb3qGdXmirNy4EFUPtFMyXO3SwZIea61UpPLN6hcPDliluU+SwyVjkpicPUZcN/wweXkhQN/rexsbvNJ1qlD1DC1qT9eryj5b/i8RCWHGhxhlxvqlTxxmUpGMQ== root@h1
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAufPOnaaBhOgLepshNFTsUROGv0BZFCyqOK3rl+nr02YC5bk/I0K4kfnrJcTMgtE7CPYnjzPzpQLTKDYpu9Qv2XQkxadKe3FsWoihnRz4+ZLaL5QdlKwM8CNNDvYXnULwUh7ZyyEAxT+50WkIzVL+aVz4nbynOw6oJHyg492tU/lkytRPSTn0ogAH10QGqOGzKMLoFSiE5ce6acNrck79ya4R13k6y6XiJYjlfkfU+QbKw9vtZcVWN9LpygfYeQWZOv6vYA/XRk2ZZspwYs+lGQq7vdJTIxLW/SbS9qV5nJUYzVMDeG34rYJpZaM6FQ7TPxrQt00oPXBOL45Lf5fadQ== root@h2
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtND3Kbx2fVg3dZfwQFxBdC1xmVX+gv9mfbUW5C2g+NYwxYR+yGSQQo43AjWcCz+HR2IyP4zijPpuY6x/9EObi5GUjQ5GvZiO/dWMUajMv2TbV92Y0/utgEaT301hQY2/UjlY9pheATZSBDk3X66pXq/kf0aYu7Wf2JULpBdilq711KHHgCRuHwNfduCwxhmw0mqx8i2SbCvbgHaEEmD8liqOQB0VOD2RWvUCSqaT4pnBhH0XWULUkO+VepzL4bup0LlCl88T2LF3Rso+g7k6rRBwoVoHGG8KQtVXPy33pcM7BIXxqFsQVrn7QYe09uBZS/BZj0e7bzCos1nBAb0+Gw== root@weir
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtZN3yCKaxw7ysWqU5KjgjVfn+YqA4rP80rWwc5d2GLPBA7Kj2JuxUIuRBVTEAO4sir2TU4tDNrX5EVu7WZPmv3Z5w2hj4nnJhusHZo477qAwufE9G9cqJkc2Wuci+tiMp7beal1fDvE8guqy8IJCJuLInGWbvSuVToDcZiCazYg4vlMaB5J8xuNhcNpt7w665+YA2f7Bms9qylbQJnsmU95CSqnRKZag9OioOWrgPn/WjS93n/qMBIz3jWJeOiCi9jeg5zsYTxljfMQF+05NTg8tNZGGxweuR5dVFm7yHNfp4Gosj4Jhz7ZlFASRQe/q4cGc5EEQUzire4Qy7XQoGQ== root@h3

    同一时候将h2,h3上面的公钥加到h1de的共享文件夹/home/gx/.ssh/authorized_keys上面

    ssh h2.weir.com cat ~/.ssh/id_rsa.pub >> /home/gx/.ssh/authorized_keys

    ssh h3.weir.com cat ~/.ssh/id_rsa.pub >> /home/gx/.ssh/authorized_keys

    内容当面是一样的。

    接下来操作h2,h3

    软连接h2,h3(首先先删除~/.ssh/authorized_keys)

    ln -s /nfs_share/.ssh/authorized_keys  ~/.ssh/authorized_keys


    到此就完毕了。

    測试结果是  能够免password从h2,h3登录到h1

    而不能  从h1免password登录到h2,h3

    这让人不解


  • 相关阅读:
    Linux下Mysql的安装步骤
    分布式集群Session原理及实现共享
    MySQL数据库表分区功能详解
    PHP面向对象程序设计之接口(interface)
    PHP面向对象程序设计之抽象类和抽象方法
    MySQL优化技巧
    MySQL性能优化之max_connections参数
    PHP环境下Memcache的使用方法
    PHP之Trait详解
    如何选择合适的MySQL数据类型
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5214684.html
Copyright © 2011-2022 走看看