安装python3.8
centos7安装或卸载python3.8
安装Python编译过程中需要的一些依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel
db4-devel libpcap-devel xz-devel libffi-devel
3.7以后版本需要
yum install libffi-devel -y
yum install zlib*
创建空文件夹并在改文件夹下使用wget从Python的官方网站下载Python 3.8的源码(若需别的版本可以自行找到连接并更改连接)
mkdir install_python
cd install_python
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
解压
tar xzf Python-3.8.12.tgz
进入解压目录后编译安装Python 3.8(这里使用--prefix参数安装到/usr/local/python3.8,如需别处可以自行更改)
cd Python-3.8.12
sudo ./configure --prefix=/usr/local/python3.8 --enable-optimizations
make
sudo make install
验证安装成功
/usr/local/python3.8/bin/python3.8 --version
更改软链接
将系统默认的python备份
mv /usr/bin/python /usr/bin/python2.7.5
(可选)ln -s /usr/local/python3.8/bin/python3.8 /usr/bin/python
ln -s /usr/local/python3.8/bin/python3.8 /usr/bin/python3
# 3、验证
# python --version
python3 --version
注意:因为yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,
若改变了/usr/bin/python软件链接指向python3.8,
会出现使用yum解析错误,则需要更改yum文件为备份的python2.7.5
使用vi/vim打开yum文件
vim /usr/bin/yum
改为之前备份的python环境
验证:
yum info python3
问题:出现Could not import runpy module
在CentOS7上手动升级Python3.8.2时,遇到编译错误。
错误出现在指定安装目录后,使用了–enable-optimizations参数。
解决方法是执行make clean清除之前编译的文件,
然后去掉该参数再进行编译和安装
方式:
1、升级gcc至高版本,gcc 8.1.0已修复此问题
2、./configure参数中去掉–enable-optimizations (这次安装采用)
安装py模块:
setuptools、pycrypto、PyYAML、MarkupSafe、Jinja2、ecdsa、cryptography、paramiko、simplejson
mkdir py_module
cd py_module/
pip install --upgrade pip
yum -y install epel-release(看情况)
pip download 模块名称
遇到报错 例如:pip download setuptools --trusted-host mirrors.cloud.aliyuncs.com 添加信任
pip install ./*.whl && pip install ./*.tar.gz
ansible包下载: https://releases.ansible.com/ansible/
tar -xf ansible-2.9.9.tar.gz
## 安装ansible
cd ansible-2.9.9/
python setup.py build
python setup.py install
初始化配置
mkdir /etc/ansible
cp examples/ansible.cfg examples/hosts /etc/ansible/
配置ansible软链接:ansible、ansible-doc、ansible-playbook
ln -s /usr/local/python375/bin/ansible /usr/local/sbin/ansible
ln -s /usr/local/python375/bin/ansible-doc /usr/local/sbin/ansible-doc
ln -s /usr/local/python375/bin/ansible-playbook /usr/local/sbin/ansible-playbook
添加主机名解析:
vim /etc/hosts 例如:
172.16.10.1 app
172.16.10.2 web
修改ansible配置(没需要保持默认)
vim /etc/ansible/ansible.cfg
配置hosts:
vim /etc/ansible/hosts
配置免密登录
ssh-keygen -t rsa #生成免密登录公私钥,根据提示按回车或y
ls -lha #.ssh目录默认隐藏,可使用ls -lha 查看
cd /root/.ssh/ #进入.ssh 公私钥存放目录
id_rsa #生成的私钥文件
id_rsa.pub #生成的公钥文件
authorized_keys #存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥(如没有,可touch 创建)
know_hosts #已知的主机公钥清单 (默认没有,上传公钥后自动生成)
上传公钥至远程机,实现免密登录
#将本机的公钥上传至 x.x.x.x 机器上,实现对x.x.x.x 机器免密登录
方法一
ssh-copy-id -i ~/.ssh/id_rsa.pub root@x.x.x.x
(x.x.x.x 是远程系统IP)
方法二
scp -p ~/.ssh/id_rsa.pub root@x.x.x.x:/root/.ssh/authorized_keys