saltstack试用篇:一、源码安装与简单配置

本系列文章由初学者写,高手就不要浪费时间了


环境:centos6.2 minimum(最小化安装)

特点:无外网


测试机没有外网,就自己手动源码安装把,的确是要累一些...做个笔记记录一下

官方文档说:安装需求

python >=2.6 <3.0

zeromq >=2.1.9

pyzmp >=2.1.9

pycrypto

msgpack-python

yaml

jinja2


===== 安装流水帐如下了 =====

先安装了salt-0.17,然后一发不可收拾...


启动master报错 - ImportError: No module named yaml

解决

PyYAML-3.10.tar.gz

https://pypi.python.org/pypi/PyYAML/3.10#downloads


启动master报错 - ImportError: No module named jinja2

解决

Jinja2-2.7.1.tar.gz

https://pypi.python.org/pypi/Jinja2/2.7.1

安装jinja2报错 - error: Could not find suitable distribution for Requirement.parse('markupsafe')

解决

MarkupSafe-0.18.tar.gz

https://pypi.python.org/simple/MarkupSafe/


启动master报错 - ImportError: No module named zmq

解决

pyzmq-13.1.0.tar.gz

https://pypi.python.org/pypi/pyzmq/13.1.0#downloads

安装pyzmq报错,其中有一段 - Failed with default libzmq, trying again with /usr/local

解决

libzmq-master.zip

https://github.com/zeromq/libzmq


启动master报错 - ImportError: No module named M2Crypto

M2Crypto-0.21.1.tar.gz

https://pypi.python.org/pypi/M2Crypto/0.21.1

安装m2crypto报错 - /usr/include/openssl/opensslconf.h:31: Error: CPP #error ""This openssl-devel package does not work your architecture?"". Use the -cpperraswarn option to continue swig processing.

error: command 'swig' failed with exit status 1

解决

msgpack-python-0.3.0.tar.gz

https://pypi.python.org/pypi/msgpack-python/0.3.0


然后发现master和minion在运行一段时间后会报以下错误 - NameError: global name 'AES' is not defined

只好在源码中搜索了

[root@DFS-1 salt]# grep -R AES /usr/lib/python2.6/site-packages/salt/

/usr/lib/python2.6/site-packages/salt/crypt.py: from Crypto.Cipher import AES

然后google了一下Crypto.Cipher,解决

解决:

https://pypi.python.org/pypi/pycrypto/2.6

========================


整理一下安装过程:

unzip libzmq-master.zip

cd libzmq-master

./autogen.sh

cd ..

tar zxf PyYAML-3.10.tar.gz

cd PyYAML-3.10

/usr/bin/python setup.py install > install.log

cd ..

tar zxf MarkupSafe-0.18.tar.gz

cd MarkupSafe-0.18

/usr/bin/python setup.py install > install.log

cd ..

tar zxf Jinja2-2.7.1.tar.gz

cd Jinja2-2.7.1

/usr/bin/python setup.py install > install.log

cd ..

tar zxf pyzmq-13.1.0.tar.gz

cd pyzmq-13.1.0

/usr/bin/python setup.py install > install.log

cd ..

tar zxf M2Crypto-0.21.1.tar.gz

cd M2Crypto-0.21.1

sed -i 's/python/\/usr\/bin\/python/g' fedora_setup.sh

# 注:我的默认python版本为2.5,此举为切换运行环境到centos6.2自带的python2.6上

./fedora_setup.sh install

cd ..

tar zxf msgpack-python-0.3.0.tar.gz

cd msgpack-python-0.3.0

/usr/bin/python setup.py install > install.log

cd ..

tar zxf pycrypto-2.6.tar.gz

cd pycrypto-2.6

/usr/bin/python setup.py install > install.log

cd ..

tar zxf salt-0.17.0.tar.gz

cd salt-0.17.0

/usr/bin/python setup.py install > install.log

cd ..


注:安装完后salt在启动后仍然发现一个缺包的warning

[WARNING ] virtualenv not installed, please install first

virtualenv是啥呢,搜索得

https://pypi.python.org/pypi/virtualenv/

不影响使用,慢慢再深入学习


salt运行

源码安装后,还需要手动拷贝配置文件模板到/etc/salt/内

cp salt-0.17.0/conf/master /etc/salt/

cp salt-0.17.0/conf/minion /etc/salt/

salt的master与minion安装方式相同,启动不同的服务即可。正确安装完毕后可以看到一批salt命令

[root@DFS-1 ~]# salt

salt salt-call salt-cp salt-key salt-master salt-minion salt-run salt-ssh salt-syndic

启动master:会启动4505、4506端口

[root@DFS-1 ~]# salt-master

启动minion:不启动任何端口

[root@DFS-1 ~]# salt-minion


salt配置

基本上按配置文件模板启动就可以使用,测试中进行了一些自定义

[root@DFS-1 salt]# diff master master.bak |grep "<"

< default_include: /data1/salt/master.d/*.conf # 我在这里单独进行file_root、pillar_root、nodegroup的配置

< publish_port: 4505

< user: root

< max_open_files: 100000

< worker_threads: 1

< ret_port: 4506

< pidfile: /tmp/salt-master.pid

< root_dir: /data1/salt

< pki_dir: /data1/salt/pki/master

< cachedir: /data1/salt/cache/master

< auto_accept: True # 自动认证,免除一些手续

minion的配置没有做任何改动(除了minion id)


你可能感兴趣的:(简单配置,SALT,源码安装)