ansible

ansible模块

密钥认证

1.创建密钥对

ssh-keygen -t rsa -f ~/.ssh/id_rsa  -P ''
#-f 指定位置 -p指定密码设置为空

2.自动化分发公钥

#安装密码提供密码
yum install -y sshpass
sshpass -p1  ssh-copy-id    10.0.0.31
sshpass -p1 ssh-copy-id -i ~/.ssh/id_rsa.pub  -o StrictHostKeyChecking=no  10.0.0.41    #临时不检查主机信息

3.分发脚本

#!/bin/bash
#author: mango
#version: v2 
#desc: 一键创建秘钥对 分发秘钥对 

#1.vars
pass=1
ips="10.0.0.41 10.0.0.31 10.0.0.51 10.0.0.7 10.0.0.5 10.0.0.6 10.0.0.8 10.0.0.9 10.0.0.10 10.0.0.225 120.46.145.122"
. /etc/init.d/functions

#1.4 判断是否联网或是否可以使用yum
#1.5 加入判断sshpass命令是否存在,如果不存在则安装

#2.创建秘钥对
if [ -f ~/.ssh/id_rsa ] ;then
   echo "已经创建过秘钥对"
else
   echo "正在创建秘钥对...."
   ssh-keygen -t rsa  -f  ~/.ssh/id_rsa   -P ''  &>/dev/null
   if [ $? -eq 0 ];then
       action "密钥创建成功" /bin/true
   else
       action "密钥创建失败" /bin/false
   fi
fi

#3.通过循环发送公钥
for ip  in  $ips
do
   sshpass -p${pass} ssh-copy-id -i ~/.ssh/id_rsa.pub -oStrictHostKeyChecking=no  $ip &>/dev/null
   if [ $? -eq 0 ];then
       action "$ip 公钥分发 成功" /bin/true
   else
       action "$ip 公钥分发 失败" /bin/false
   fi
done

ansible配置

部署与配置

#部署
yum install -y ansible
#配置
修改配置文件关闭主机Host_key_checking . 
修改配置文件开启日志功能.
[root@m01 ~]# egrep -vn '^$|#' 
/etc/ansible/ansible.cfg
10:[defaults]
71:host_key_checking = False
111:log_path = /var/log/ansible.log 
327:[inventory]
340:[privilege_escalation] 
346:[paramiko_connection] 
370:[ssh_connection]
431:[persistent_connection] 
445:[accelerate]
460:[selinux] 
469:[colors]
485:[diff]

主机清单

在/etc/ansible/hosts中

[web]
172.16.1.7

[nfs]
172.16.1.31

[backup]
172.16.1.41

[data:children]  #子组
nfs
backup
web

使用格式

  • ansible 指定hosts 模块 -a ‘模块中的选项’

剧本与变量

剧本的目录格式

[root@m01 /server/scripts/roles-all/roles02]# tree
.
├── group_vars
│   └── all
│       └── main.yml		#用来存放主体变量
├── hosts					#用来存放用到的hosts
├── nginx
│   ├── files				#用来存放需要copy等文件的地方
│   ├── handlers
│   │   └── main.yml		#用来存放handlers触发器的内容
│   ├── tasks	
│   │   └── main.yml		#用来存放具体步骤的地方
│   └── templates			#用来存放含有变量的文件
└── top.yml					#书写最终运行的剧本
posted @ 2023-02-12 20:46  MangoBox  阅读(101)  评论(0)    收藏  举报