一、為新系統添加安全認證SSHKey
一、ansible密碼認證
1、配置inventory,默認配置/etc/ansible/hosts,添加配置如下
#定義k8s node主機組 [ops-k8s] ops-k8s-node01 ops-k8s-node02 #冒號分隔,vars定義變量,改變k8s node主機組默認連接信息 [ops-k8s:vars] #指定默認連接的用戶和密碼 ansible_ssh_user = "root" ansible_ssh_pass = "admin@123"
2、測試默認變量是否生效
# ansible ops-k8s -m shell -a "whoami" ops-k8s-node02 | SUCCESS | rc=0 >> root ops-k8s-node01 | SUCCESS | rc=0 >> root ops-k8s-master02 | SUCCESS | rc=0 >> root
3、調用Ansible authorized_key模塊,添加認證至遠程主機
方式一:使用認證模塊
ansible ops-k8s -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}' path=/root/.ssh/authorized_keys manage_dir=no"
方式二:調用ansible的copy模塊和shell模塊
#copy公鑰遠程主機/tmp目錄下 ansible ops-k8s -m copy -a "src=/root/.ssh/id_rsa.pub dest=/tmp/id_rsa.pub" #添加公鑰到指定目錄下 ansible ops-k8s -m shelll -a "cat /tmp/id_rsa.pub >>/root/.ssh/authorized_keys"
4、刪除連接用戶信息,使用ansible命令進行驗收
#定義k8s node主機組 [ops-k8s] ops-k8s-node01 ops-k8s-node02
##將下面的內容刪除 #冒號分隔,vars定義變量,改變k8s node主機組默認連接信息 #[ops-k8s:vars] #指定默認連接的用戶和密碼 #ansible_ssh_user = "root" #ansible_ssh_pass = "admin@123"
二、ssh-copy-id秘鑰分發
使用ssh-copy-id用於復制指定用戶的公鑰至遠程服務器,同時修改~/.ssh的目錄權限。
1、向單台服務器秘鑰分發
非交互性創建秘鑰
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
分發公鑰
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p52113 172.16.1.41"
2、基於sshpass批量秘鑰分發
sshpass使用鏈接:https://linux.cn/article-8086-1.html
#安裝sshpass yum install sshpass
#/bin/bash #fenfa all pub key by wzs at 20161014 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1 for n in 31 61 41 7 8 do sshpass -p 123456 ssh -o StrictHostKeyChecking=no 172.16.1.$n "mkdir -m 700 -p ~/.ssh/" sshpass -p 123456 scp -o StrictHostKeyChecking=no ~/.ssh/id_dsa.pub wzs@172.16.1.$n:~/.ssh/authorized_keys sshpass -p 123456 ssh -o StrictHostKeyChecking=no 172.16.1.$n "chmod 600 ~/.ssh/authorized_keys" /bin/ls -ld /home/wzs/.ssh /bin/ls -l /home/wzs/.ssh done
3、使用expect配置免密碼登錄
#!/bin/bash keypath=/root/.ssh [ -d ${keypath} ] || mkdir -p ${keypath} rpm -q expect &> /dev/null || yum install expect -y ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" password=centos for host in `seq 10 14`;do expect <<EOF set timeout 5 spawn ssh-copy-id 192.168.2.$host expect { "yes/no" { send "yes\n";exp_continue } "password" { send "$password\n" } } expect eof EOF done
二、企業高可用架構的ansible應用
Ansible 使用高級進階:https://blog.csdn.net/achuDk/article/details/74892903
《Ansible權威指南》第九章
9.2 企業高可用架構的Ansible應用
9.3 ELK日志系統基於Ansible的自動化實現
9.4 實時日志系統基於Ansible的自動化實現
9.5 Zabbix基於Ansible的自動化實現
9.6 Ansible+Git+GitLab實現自動化發布
9.7 Docker的Ansible自動化應用
三、ansible圖形化界面 ansible tower 安裝方法
https://blog.csdn.net/xiaocao12/article/details/54864082
四、ansible管理Windows服務器實踐
ansible管理windows實踐 https://www.cnblogs.com/kingleft/p/6391652.html
powershell 擴展 (PSCX) 安裝指南 http://www.cnblogs.com/kingleft/p/6444125.html
五、部署分布式日志系統
部署分布式日志系統 https://www.cnblogs.com/zhaojiankai/p/7678700.html
六、ansible全面學習實戰
ansible全面學習實戰 https://www.jianshu.com/p/c56a88b103f8
學習鏈接:http://www.zsythink.net/archives/category/%E8%BF%90%E7%BB%B4%E7%9B%B8%E5%85%B3/ansible/