ansible企业应用实战

2018/05/07 17:39
阅读数 55

一、为新系统添加安全认证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/

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部