yanchuen 发表于 2018-8-1 11:40:05

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
  只好在源码中搜索了
  # 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
   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命令
  # salt
  salt salt-call salt-cp salt-key salt-master salt-minion salt-run salt-ssh salt-syndic
  启动master:会启动4505、4506端口
  # salt-master
  启动minion:不启动任何端口
  # salt-minion
  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>
页: [1]
查看完整版本: saltstack试用篇:一、源码安装与简单配置