1 背景

环境搭建以实际项目为例,HLW项目涉及8台服务器,1台二层交换机,本次环境搭建以服务器到手开始着手,涉及RAID的设置、操作系统部署、自动化工具ansible离线安装、局域网yum源设置、中间件安装、集群安装、程序部署上线。整个交付物环节。本文为流程中的自动化工具ansible离线安装部署环节。
Ansible
Ansible是一个基于Python开发的开源自动化工具,实现了批量运行命令、批量部署程序、批量配置系统等功能。默认通过SSH协议(也可使用其它协议)进行远程命令执行或下发配置,无需部署任何客户端代理软件(agentless)在被管控主机上,并可同时支持多台主机并行管理。Ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。
Ansible 2.7官方帮助文档:https://docs.ansible.com/ansible/latest/index.html
Ansible中文指南:http://www.ansible.com.cn/index.html

2 环境说明

本次是整体流程中的第三个环节:自动化工具ansible离线安装,操作本文之前需要安装完毕操作系统。并且开通sshd服务。

ansible二进制离线安装 ansible离线安装部署_Ansible

3 操作步骤

3.1、准备相同环境

准备一台能接入互联网跟部署的操作系统相同的服务器

[root@hlw18 ansible]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

3.2、安装yumdownloader工具

# 1 下载安装yumdownload工具
# yum install yum-utils -y
# 2 创建存储ansible文件夹
# mkdir -p /home/downloads/tools/ansible
# 4 下载yum安装ansible所需的fedora eqel源
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y

3.3、下载ansible软件及依赖包

# 切换到创建存储的ansible目录
# cd /home/downloads/tools/ansible
# 下载ansible和所有依赖包
# yumdownloader --resolve --destdir /home/downloads/tools/ansible  ansible

3.4、打包迁移

# 切换目录
# cd /home/downloads/tools/
# 打包
# tar czvf ansible.tar.gz ansible/

将打包的ansible软件通过光盘或者存储介质拷贝到内网服务器上

3.5 安装部署

# 1 解压安装包
# tar -xzvf ansible.tar.gz
# 2 进入到解压目录
# cd ansible
# 3 执行安装ansible
# rpm -ivh *.rpm

ansible二进制离线安装 ansible离线安装部署_ansible二进制离线安装_02

3.6、配置

内网环境,操作部署,将服务器的信息维护到ansible的hosts文件中

vi /etc/ansible/hosts

[hlw]
192.168.1.[11:18]
[hlw:vars]
ansible_ssh_user=root
ansible_ssh_pass=XXXXXXXX
ansible_ssh_port=22

3.7、验证

# ansible hlw -m ping

弹出如下信息

SSH password: 
192.168.1.108 | FAILED! => {undefined
    "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."
}

处理方法

vi /etc/ansible/ansible.cfg

#在文件中进行搜索定位到
:/host_key_checking

# uncomment this to disable SSH key host checking
#host_key_checking = False

修改后:

# uncomment this to disable SSH key host checking
host_key_checking = False

重新验证

# ansible hlw -m ping