ansible企業應用實戰


一、為新系統添加安全認證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/


免責聲明!

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



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