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模塊,解決辦法:
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'"