基于Python 2.7使用pip安装 SaltStack的方法

首先安装 Python 2.7.10

yum -y install perl-ExtUtils-Embed.x86_64 libxml2 libxml2-devel libxslt libxslt-devel libffi libffi-devel build-essential autoconf libtool gcc git libaio libaio-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libicu libicu-devel openldap openldap-devel libmcrypt libmcrypt-devel openssl openssl-devel ncurses.x86_64 ncurses-devel.x86_64 sqlite-devel bzip2-devel libdbi-devel 

 

wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz

tar xf Python-2.7.10.tgz

cd Python-2.7.10

./configure --prefix=/usr/local/python2.7

make

make install

 

vim /root/.bash_profile

----------------------------------------------

PATH=$PATH:$HOME/bin:/usr/local/python2.7/bin/     # 修改 PATH 变量,将 Python 可执行目录加入环境变量

----------------------------------------------

source .bash_profile

 

wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

sh setuptools-0.6c11-py2.7.egg

 

wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#md5=01026f87978932060cc86c1dc527903e

tar xf pip-1.5.6.tar.gz

cd pip-1.5.6

/usr/local/python2.7/bin/python2.7 setup.py install

 

pip install pip --upgrade

pip install setuptools --upgrade

如果使用的是国内主机,使用 pip 安装模块的话会比较慢,可以使用国内 pip 源来安装,这里使用的是中科大 pip 源

mkdir /root/.pip     # 如果目录不存在,则建立此目录

vim /root/.pip/pip.conf

 

[global]

index-url = https://pypi.mirrors.ustc.edu.cn/simple     # 源地址,末尾需要加上 /simple

[install]

trusted-host=pypi.mirrors.ustc.edu.cn     # 如果使用 https 方式,需要此参数

安装 SaltStack 依赖系统软件包

yum -y install libyaml m2crypto openpgm pciutils yum-utils zeromq3

安装 SaltStack 依赖 Python 模块

pip install babel

pip install chardet

pip install crypto

pip install jinja2

pip install ordereddict

pip install requests

pip install six

pip install urllib3

pip install zmq

pip install backports.ssl_match_hostname

pip install M2Crypto

pip install pycrypto

安装 SaltStack

pip install salt

至此 SaltStack 基于 Python 2.7.10 安装完成,完成后为了使用方便,为服务添加 init.d 脚本

master 端脚本

#!/bin/sh
#
# Salt master
###################################
# LSB header
### BEGIN INIT INFO
# Provides:          salt-master
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Salt master control daemon
# Description:       This is a daemon that controls the Salt minions.
### END INIT INFO

# chkconfig header
# chkconfig: 345 96 05
# description:  This is a daemon that controls the Salt minions
#
# processname: /usr/bin/salt-master

DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
   break   
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
    . /etc/rc.status
else
    . /etc/rc.d/init.d/functions
fi
# Default values (can be overridden below)
SALTMASTER=/usr/local/python2.7/bin/salt-master
PYTHON=/usr/local/python2.7/bin/python2.7
MASTER_ARGS=""
if [ -f /etc/default/salt ]; then
    . /etc/default/salt
fi
SERVICE=salt-master
PROCESS=salt-master
RETVAL=0
start() {
    echo -n $"Starting salt-master daemon: "
    if [ -f $SUSE_RELEASE ]; then
        startproc -f -p /var/run/$SERVICE.pid $SALTMASTER -d $MASTER_ARGS
        rc_status -v
    elif [ -e $DEBIAN_VERSION ]; then
        if [ -f $LOCKFILE ]; then
            echo -n "already started, lock file found" 
            RETVAL=1
        elif $PYTHON $SALTMASTER -d $MASTER_ARGS >& /dev/null; then
            echo -n "OK"
            RETVAL=0
        fi
    else
        daemon --check $SERVICE $SALTMASTER -d $MASTER_ARGS
    fi
    RETVAL=$?
    echo
    return $RETVAL
}
stop() {
    echo -n $"Stopping salt-master daemon: "
    if [ -f $SUSE_RELEASE ]; then
        killproc -TERM $SALTMASTER
        rc_status -v
    elif [ -f $DEBIAN_VERSION ]; then
        # Added this since Debian's start-stop-daemon doesn't support spawned processes
        if ps -ef | grep "$PYTHON $SALTMASTER" | grep -v grep | awk '{print $2}' | xargs kill &> /dev/null; then
            echo -n "OK"
            RETVAL=0
        else
            echo -n "Daemon is not started"
            RETVAL=1
        fi
    else
        killproc $PROCESS
    fi
    RETVAL=$?
    echo
}
restart() {
   stop
   start
}
# See how we were called.
case "$1" in
    start|stop|restart)
        $1
        ;;
    status)
        if [ -f $SUSE_RELEASE ]; then
            echo -n "Checking for service salt-master "
            checkproc $SALTMASTER
            rc_status -v
        elif [ -f $DEBIAN_VERSION ]; then
            if [ -f $LOCKFILE ]; then
                RETVAL=0
                echo "salt-master is running."
            else
                RETVAL=1
                echo "salt-master is stopped."
            fi
        else
            status $PROCESS
            RETVAL=$?
        fi
        ;;
    condrestart)
        [ -f $LOCKFILE ] && restart || :
        ;;
    reload)
        echo "can't reload configuration, you have to restart it"
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
        exit 1
        ;;
esac
exit $RETVAL

 

minion 端脚本

#!/bin/sh
#
# Salt minion
###################################
# LSB header
### BEGIN INIT INFO
# Provides:          salt-minion
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Salt minion daemon
# Description:       This is the Salt minion daemon that can be controlled by the
#                    Salt master.
### END INIT INFO

# chkconfig header
# chkconfig: 345 97 04
# description:  This is the Salt minion daemon that can be controlled by the Salt master.
#
# processname: /usr/bin/salt-minion

DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
   break
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
    . /etc/rc.status
else
    . /etc/rc.d/init.d/functions
fi
# Default values (can be overridden below)
SALTMINION=/usr/local/python2.7/bin/salt-minion
PYTHON=/usr/local/python2.7/bin/python2.7
MINION_ARGS=""
if [ -f /etc/default/salt ]; then
    . /etc/default/salt
fi
SERVICE=salt-minion
PROCESS=salt-minion
RETVAL=0
start() {
    echo -n $"Starting salt-minion daemon: "
    if [ -f $SUSE_RELEASE ]; then
        startproc -f -p /var/run/$SERVICE.pid $SALTMINION -d $MINION_ARGS
        rc_status -v
    elif [ -e $DEBIAN_VERSION ]; then
        if [ -f $LOCKFILE ]; then
            echo -n "already started, lock file found"
            RETVAL=1
        elif $PYTHON $SALTMINION -d $MINION_ARGS >& /dev/null; then
            echo -n "OK"
            RETVAL=0
        fi
    else
        if [[ ! -z "$(pidofproc -p /var/run/$SERVICE.pid $PROCESS)" ]]; then
            RETVAL=$?
            echo -n "already running"
        else
            daemon --check $SERVICE $SALTMINION -d $MINION_ARGS
        fi
    fi
    RETVAL=$?
    echo
    return $RETVAL
}
stop() {
    echo -n $"Stopping salt-minion daemon: "
    if [ -f $SUSE_RELEASE ]; then
        killproc -TERM $SALTMINION
        rc_status -v
        RETVAL=$?
    elif [ -f $DEBIAN_VERSION ]; then
        # Added this since Debian's start-stop-daemon doesn't support spawned processes
        if ps -ef | grep "$PYTHON $SALTMINION" | grep -v grep | awk '{print $2}' | xargs kill &> /dev/null; then
            echo -n "OK"
            RETVAL=0
        else
            echo -n "Daemon is not started"
            RETVAL=1
        fi
    else
        killproc $PROCESS
        RETVAL=$?
    fi
    echo
}
restart() {
   stop
   start
}
# See how we were called.
case "$1" in
    start|stop|restart)
        $1
        ;;
    status)
        if [ -f $SUSE_RELEASE ]; then
            echo -n "Checking for service salt-minion "
            checkproc $SALTMINION
            rc_status -v
        elif [ -f $DEBIAN_VERSION ]; then
            if [ -f $LOCKFILE ]; then
                RETVAL=0
                echo "salt-minion is running."
            else
                RETVAL=1
                echo "salt-minion is stopped."
            fi
        else
            status $PROCESS
            RETVAL=$?
        fi
        ;;
    condrestart)
        [ -f $LOCKFILE ] && restart || :
        ;;
    reload)
        echo "can't reload configuration, you have to restart it"
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
        exit 1
        ;;
esac
exit $RETVAL

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
saltstack python2.7、pip 安装saltstack、pip saltstack、python saltstack、saltstack api python,以便于您获取更多的相关知识。

时间: 2024-10-29 15:31:25

基于Python 2.7使用pip安装 SaltStack的方法的相关文章

Python切换pip安装源的方法详解_python

一.pip简介 Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能. Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装. 二.Linux下的源配置    检查pip.conf文件是否存在     >>  cd ~     >>  mkdir .pip     >>  ls ~/.pip 三.编辑源  方案1: 直

[转]Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装

apache|web|数据|数据库 发信人: xiaoning (我要飞), 信区: Linux 标  题: Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安 发信站: BBS 水木清华站 (Thu Jan 20 16:00:28 2000)   以下将说明使用Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装和配置方法 . 关于Apache.PHP3和PostgreSQL的更多内容可以从软件的附带文档.Linux的HOWTO文件   以及以下

Python中pip安装非PyPI官网第三方库的方法

  这篇文章主要介绍了Python中pip安装非PyPI官网第三方库的方法,pip最新的版本(1.5以上的版本), 出于安全的考虑,pip不允许安装非PyPI的URL,本文就给出两种解决方法,需要的朋友可以参考下 在python中安装非自带python模块,有三种方式: 1.easy_install 2.pip 3.下载压缩包(.zip, .tar, .tar.gz)后解压, 进入解压缩的目录后执行python setup.py install命令 本文主要针对pip安装时可能会碰到的一种情况,

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

        最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态生成的信息页面,如Ajax.JavaScript等就需要通过"Phantomjs + CasperJS + Selenium"来实现了.所以先从安装和功能介绍入门,后面在介绍一些Python相关的爬虫应用. 一. 介绍        PhantomJS        Pha

Python使用pip安装MySQLdb提示无法找到符合要求的版本

问题描述 Python使用pip安装MySQLdb提示无法找到符合要求的版本 我在使用一个关于数据挖掘平台Storm的框架pyleus,用pyleus将Python程序打成jar包,提交到Storm中运行.我在打包的过程中出现了如下的运行错误,我使用的系统是CentOS: Collecting PyYAML (from pyleus==0.3.0) Installing collected packages: msgpack-python, six, virtualenv, PyYAML, py

CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

有的朋友由于是centos的,直接 yum install pip  或者 yum install python-pip都是不行的. 其实不能yum那就直接下载编译安装呗... CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法如下: 截至包子写本文的时候,pip最新为 1.5.5 wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz 注意:wget获取http

pip 安装 Python 库时报错分析及解决办法

在我的Mac Air上,用pip安装一些Python库时,偶尔就会遇到一些报错,关于"unused-command-line-argument-hard-error-in-future",如下: cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE

ShutIt:一个基于Python的shell自动化框架

译者注:本文通过实例简单介绍了ShutIt这个基于Python的自动化框架的使用方法.除了pexpect,我们又多了这个选择.以下是译文. ShutIt是一个易于使用的基于shell的自动化框架.它对基于python的expect库(pexpect)进行了包装.你可以把它看作是"没有痛点的expect".它可以通过pip进行安装. Hello World 让我们从最简单的例子开始吧.创建一个名为example.py的文件: import shutit      session = sh

CentOS 7 安装 saltstack

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq.PyCrypto.Pyjinjia2.python-msgpack和PyYAML等)构建. 通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理.分发文件.采集服务器数据.操作系统