批量管理工具:pssh/ansible

ssh 免密碼 批量管理
1.建立用戶
useradd user1
echo 「123456」| passwd --stdin user1
2.建立祕鑰
ssh-keygen -t dsa
而後一直回車python

非交互式(批量)建立祕鑰mysql

 

 

3.上傳公鑰(其餘服務器也須要有一樣用戶)
ssh-cppy-id -i ~/.ssh/id_dsa.pub user1@IPlinux

若是端口改變的話程序員

 

 

4.能夠直接寫腳本執行(非交互式)
例:直接在後面加命令sql

 

 

5.ssh 經常使用選項用法
-l 指定登入用戶
-p 設置端口號(scp時須要大寫P)
-f 後臺運行,並推薦加上 -n 參數
-n 將標準輸入重定向到 /dev/null,防止讀取標準輸入
-t 在終端執行docker

5.sudu用法:在sudo組中或在/etc/sudoers 下修改 給用戶受權shell

遠程sudo須要 ssh 加 -tvim

 

 

 

 


expect實現非交互式批量管理
例:批量分發公鑰
vim scrip.expcentos

 

 

若是還須要執行後續命令
則加上服務器

 

 

 

 

 


而後循環調用此腳本進行批量

 

 

 

ansible
CI(持續集成):爲了每一個項目組程序員開發的功能或模塊可以兼容須要不斷的把已經開發好的功能集成到系統中進行測試
CD(持續交付):測試沒問題不斷快速發到預發佈系統中能讓客戶獲取新版本
CD(持續部署):把交付的結果放到線上,這個過程可以腳本自動執行和快速敏捷實現
DevOps:以上三個過程可以所有自動進行
AIOps:人工智能運維(智能化運維)
2.以上能夠分爲三步:系統安裝、系統配置、系統部署。ansible能夠完成配置和部署
3.ansible命令行:

-a:傳輸模塊參數
-m:調用得模塊
-C:模擬測試
-f:併發量
-i:指定主機清單文件(默認/etc/ansible/hosts)
–list-hosts:列出可匹配的主機列表
-t:指定日誌
-c:指定連接方式
-u:指定連接的用戶
-s:sudo
4.免祕鑰登陸
ssh-keygen -t rsa -P " "
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.0.67
5.定義目標主機在/etc/ansible/hosts中
[] 能夠設置每一個主機組

 

 

 

 


fales 表示沒改變目標主機配置
6.查看可用模塊

 

 

-a 獲取文檔
-l 列出可用模塊
-s 查看模塊中可用的參數

 

 

 

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

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

  三、此時會在另一臺服務器上生成auth文件。完成!       

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

pssh實例

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

  安裝方法

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

  二、解壓,進入目錄。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進行管理的服務器成爲「受控節點」

  優勢:

    一、輕量級,更新時,只須要在一臺服務器上進行一次更新便可

    二、採用SSH協議

    三、不須要去客戶端執行agent

    四、批量執行能夠寫成腳本,不用分發到遠程就就能夠執行

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

    六、支持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等

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

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

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

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

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

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

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

相關文章
相關標籤/搜索