zoukankan      html  css  js  c++  java
  • 如何在linux下升级python以及saltstack安装

    背景:公司申请了一些云服务器,包括阿里云和腾讯云,由于服务器自带的python是2.x版本,考虑到后续开发人员要使用3.x版本的,因此对python进行版本升级。

    首先查看云服务器的版本:

    使用lsb_release -a命令

    腾讯云服务器出现了找不到该命令的提示 -bash: lsb_release: command not found

    原来lsb命令并不是系统默认给安装好的,如果要使用该命令,需要自行安装了命令才可以使用

    安装方式:yum install -y redhat-lsb

    安装完成之后,系统不用重启,直接使用即可

    其他查看命令:

    [root@VM_0_9_centos ~]# cat /etc/redhat-release
    CentOS Linux release 7.5.1804 (Core)

    [root@VM_0_9_centos ~]# rpm -q centos-release   #redhat可以用rpm -q redhat-release 
    centos-release-7-5.1804.el7.centos.x86_64

    下载python新版本

    我选择的版本是 3.6.4

    [root@VM_0_9_centos ~]# wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

    如果使用上述命令出现下载速度慢的情况,可以先去官网将tar包下载到本地,再通过xshell上传到云服务器

    解压缩

    [root@VM_0_9_centos ~]# tar -zxvf Python-3.6.4.tgz 

    安装配置

    # cd Python-3.6.4/

    # ./configure

    如果该命令执行报错需检查make,gcc等是否安装好

    yum install make gcc gcc-c++ 

    编译 & 安装

    # make && make install

    安装过程可能会出现如下报错:

    zipimport.ZipImportError: can't decompress data; zlib not available
    make: *** [install] Error 1

    需要安装zlib的依赖包

    # yum -y install zlib-devel

    再执行编译安装命令就完成了

    验证

    # python -V

    Python 2.7.5

    # python3 -V

    Python 3.6.4

    一个是旧版本 2.x,另外一个是新版本 3.x。

    注意:在 /usr/local/bin/ 下有一个 python3 的链接,指向 bin 目录下的 python 3.6

    设置 3.x 为默认版本

    将原来 python 的软链接重命名:

     #mv /usr/bin/python /usr/bin/python.bak

    将 python 链接至 python3:

    #ln -s /usr/local/bin/python3 /usr/bin/python    (ln -s a b  a是源文件,b是建立的软链接文件)

    这时,再查看 Python 的版本:

    #python -V

    Python 3.6.4

    输出的是 3.x,说明已经使用的是 python3了

    注意:

    进入python编辑器导入ssl模块的时候

    提示ModuleNotFoundError: No module named '_ssl'

    需要在外面yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

    然后重新编译

    配置 yum

    升级 Python 之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件:

    # vi /usr/bin/yum
    同时修改:

    # vi /usr/libexec/urlgrabber-ext-down
    将 #!/usr/bin/python 改为 #!/usr/bin/python2.7,保存退出即可

    安装saltstack

    先安装epel yum源

    yum -y install epel-release 

    官网地址  http://docs.saltstack.cn/

    找到如下链接,点进去,按照文档操作

    由于服务器是centos7系统:

    rpm --import https://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
    vi /etc/yum.repos.d/saltstack.repo (文件不存在也没关系,编辑完后会自动创建该文件)
    编辑内容为:
    [saltstack-repo]
    name=SaltStack repo for RHEL/CentOS $releasever
    baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
    enabled=1
    gpgcheck=1
    gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub

    然后运行:
    sudo yum clean expire-cache #清除过期缓存
    sudo yum update
    根据需求安装saltstack的主从
    • yum install salt-master
    • yum install salt-minion

    Master
    master配置:
      vim /etc/salt/master
      interface:本机IP地址 (监听本机)
    启动systemctl start salt-master
    Slave
    minion配置:
      vim /etc/salt/minion
      master:master的IP地址 (连接master)
    注意!如果master启动遇到下面报错,说明配置文件里的interface错了

    Job for salt-master.service failed because the control process exited with error code. See "systemctl status salt-master.service" and "journalctl -xe" for details.

    由于云服务器分公网IP和内网IP,因此在/etc/salt/master里 Interface应该配置内网IP,配公网IP就有问题

    Master的操作命令:

    salt-key -L   查看接收到的客户端
    命令行方式(执行shell命令)
    salt salve端主机名 cmd.run 命令 (在master服务器上对salve进行远程操作)
    [root@iZwz99npcx0lerg6pooym6Z salt]# salt 'iZwz99npcx0lerg6pooym6Z' cmd.run 'ifconfig'
    py代码方式一
    import salt.client
    local = salt.client.LocalClient()
    res = cmd('iZwz99npcx0lerg6pooym6Z','cmd.run',['which ip'])
    print(res) #输出的是一个字典{'iZwz99npcx0lerg6pooym6Z': '/usr/sbin/ip'}
    py代码方式二(通过subprocess模块执行shell命令)
    import subprocess
    res = subprocess.getoutput("salt 'iZwz99npcx0lerg6pooym6Z' cmd.run 'which ip'")
    print(res) #输出的是字符串形式
  • 相关阅读:
    Valgrind使用转载 Sanny.Liu
    Caffe模型读取 Sanny.Liu
    JNI动态库生成、编译、查看相关简易资料 Sanny.Liu
    GDB调试,转载一位大牛的东西 Sanny.Liu
    Android处理图片工具(转载) Sanny.Liu
    添加可点击的imagebottom,有个点击动画效果 Sanny.Liu
    去OpenCVManager,大部分为转载,仅当自己学习使用 Sanny.Liu
    转载: vim使用技巧 Sanny.Liu
    结构体数组初始化三种方法,转载 Sanny.Liu
    AsyncTask机制学习 Sanny.Liu
  • 原文地址:https://www.cnblogs.com/zhangdajin/p/11094015.html
Copyright © 2011-2022 走看看