ssh和pssh以及ansible技術


配置免密鑰登錄

  1、ssh-keygen     -t rsa      生成公鑰和私鑰     -t     指定類型,此時會在/root/.ssh/下生成公鑰和私鑰的文件

       2、ssh-copy-id  -i  /root/,ssh/id_rsa.pub  root@192.168.111.138     將公鑰文件拷貝到另一台服務器,-i  指定組文件

  3、此時會在另外一台服務器上生成auth文件。完成!       

  最小化安裝沒有ssh-copy-id解決辦法,yum  install  -y openssl-clients

pssh實例

  pssh是一個可以在多台服務器上執行命令的工具,同時支持拷貝文件,是同類工具中很出色的。使用時必須在各個服務器上配置好秘鑰認證訪問

  安裝方法

  1、wget  http://www.theether.org/pssh/pssh-1.4.3.tar.gz  

  2、解壓,進入目錄。python setup.py install 

  如果提示沒有setiptools模塊,解決辦法:

     解壓進入目錄   python setup.py build;           python setup.py install
  pssh包的5個實用程序
  pssh  在多個主機上並行的運行命令
  pscp       把文件並行的復制多個主機上
  prsync  通過rsync協議把文件高效的並行復制到多個主機上
  pslurp  把文件並行的從多個主機上復制到中心機
  pnuke  並行的在多個主機上殺死進程
  參數詳解  
    -h  執行命令的主機列表文件,格式  【user@】host【:port】
    -H  執行命令主機,格式 user@ip:port
    -l    遠程機器的用戶名,默認root
    -p  並發數
    -o  輸出內容重定向一個文件  
    -e  執行錯誤重定向到一個文件
    -t  設置命令執行超時時間
    -A  提示輸入密碼並且把密碼傳遞給ssh
    -i  顯示標准輸出和標准錯誤在每台host執行完畢后

  pssh -i -h list.txt ‘df -h’

ansible詳解、

  ansible和saltstack都是管理工具,ansible只需要在一台普通服務器上運行即可,不需要在被管控的服務器上安裝客戶端,因為它是基於SSH的,所以ansible不需要配置額外的支持,運行ansible的服務器稱為‘管理節點’,通過ansible進行管理的服務器成為“受控節點”

  優點:

    1、輕量級,更新時,只需要在一台服務器上進行一次更新即可

    2、采用SSH協議

    3、不需要去客戶端執行agent

    4、批量執行可以寫成腳本,不用分發到遠程就就可以執行

    5:、使用python編寫,維護更簡單

    6、支持sudo普通用戶命令

  安裝方法

    ansible能夠安裝到linux、bsd、mac等平台,python的最低版本要求為2.6

    centos使用yum安裝,安裝之前先安裝perl源碼    rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

    yum install ansible -y

  使用方法

    cd /'etcansible;   hosts文件為配置。可以添加分組

    -u  username  指定ssh鏈接的用戶名,即執行后面命令的用戶

    -i   inventory_fie  指定使用的配置文件,默認為hosts

    -m  module    指定使用的模塊,默認為command

    -f  指定並發數

    -a  指定模塊的參數

    --sudo  [-k]      當需要root權限執行的話,-k參數用來輸入root密碼

  常見的模塊有comman、shell、script、yum、copy、file、async、docker、cron、mysql_user、ping、sysctl、user等

    1、ansible 192.168.111.*   -m command  -a 'df -h'

    2、 ansible all -m cpoy -a 'src=/etc/passwd dest=/tmp mode=755 owner=root'

    3、ansible  all   -m  yum   -a   "name=screen state=installed"

    4、ansible  all -m file -a "path=/tmp/`date +5F` state=directory  mode=755"

    5、ansible   all -m  file -a  "path=/tmp/123.txt  state=touch mode=644"

    6、ansibkle  all -m user -a "name=user1 home=/home/user1"

    7、ansible  all  -m cron   -a   "minute=0 hour=0 day=* month=* weekday=*  name='工作內容'    job='/usr/sbin/ntpdate pool.ntp.org'"  

    

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM