Ansible是自动化运维工具,基于模块化工作,本身没有批量部署的能力。
Ansible只是提供一种框架,Ansible运行的模块才有批量部署的能力。
Ansible使用SSH协议对设备进行管理,只需在主控端部署Ansible环境,被控端无需做任何操作,更新时,只需在主控端上进行一次更新即可。目前只要主控端安装了Python 3.9以上版本,都可以运行Ansible。
在公网IP为x.x.x.x的服务器上部署Python 3.9和Ansible。
Python-3.9.5安装
第一步,检查Linux系统是否自带Python。
命令:python --version
第二步,安装依赖包。
命令:yum -y install bzip2-devel gcc make ncurses-devel openssl-devel readline-devel sqlite-devel tk-devel zlib-devel
第三步,下载Python-3.9.5安装包。
命令:cd /usr/local/src
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
第四步,解压Python-3.9.5安装包。
命令:cd /usr/local/src
tar -xvJf Python-3.9.5.tar.xz
第五步,编译安装Python-3.9.5。
命令:cd /usr/local/src/Python-3.9.5
./configure prefix=/usr/local/Python-3.9.5
make && make install
若结果显示下图的内容,则说明Python-3.9.5编译安装成功。
第六步,配置Python环境变量。
在配置文件/etc/profile中添加下面的代码:
export PATH=$PATH:/usr/local/Python-3.9.5/bin
# 使profile配置立即生效
命令:source /etc/profile
# 查看Python版本
命令:python3.9 -V
若结果显示“Python 3.9.5”,则说明Python-3.9.5安装成功。
pip安装
第一步,检查Python3是否自带pip。
命令:pip3 --version
若结果显示“pip 9.0.3”,则说明Python3自带pip。
第二步,更新pip。
命令:sudo pip3 install --upgrade pip
若结果显示“Successfully installed pip-21.1.1”,则说明pip更新成功。
第三步,查看更新的pip版本。
命令:python3.9 -m pip -V
ansible安装
第一步,检测系统是否自带安装epel。
命令:rpm -qa | grep epel
若结果显示类似“epel-aliyuncs-release-8-15.1.al8.noarch”,则可以选择进行卸载。
# 普通删除模式
命令:rpm -e epel-aliyuncs-release-8-15.1.al8.noarch
# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除
命令:rpm -e --nodeps epel-aliyuncs-release-8-15.1.al8.noarch
第二步,配置epel源。
命令:yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
或 rpm -Uvh https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/e/epel-release-8-19.el8.noarch.rpm
第三步,安装ansible。
命令:python3 -m pip install --user ansible
或 python3 -m pip install --user ansible-core==2.12.3
若结果显示下图的内容,则说明ansible安装成功。
第四步,升级ansible。
命令:python3 -m pip install --upgrade --user ansible
第五步,检查已安装的ansible软件包的版本。
命令:python3 -m pip show ansible
ansible配置
第一步,SSH免密钥登录设置。(只在控制端使用)
# 生成公钥/私钥
命令:cd /root/.ssh
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
chmod 600 ~/.ssh/id_rsa
# 测试能否无密码登录
命令:ssh root@x1.x1.x1.x1
第二步,编辑配置文件/etc/hosts。(控制端、被控端都要编辑)
编辑配置文件/etc/hosts,在文件中添加下面的代码:
x1.x1.x1.x1 ansible
y1.y1.y1.y1 node1