二、源码安装篇

使用salt-ssh功能要求客户端系统python版本2.6+

1.salt-minion端环境:

  系统:SUSE SP3 64bit

  python版本:2.6.6

  RPM包:pcre-devel        #不安装,编译swig报错

2.配置/etc/salt/roster

例:

  1. 10.10.10.30:
  2. host: 10.10.10.30
  3. user: syspub    #普通用户,有无密码sudo权限
  4. passwd: 123456aa
  5. sudo: True
  6. timeout: 15

当客户端数量较多时,手工配置/etc/salt/roster比较繁琐,这里写一个简单脚本供参考

  1. vim ip.sh
  2. #!/bin/bash
  3. for i in `cat /root/gg`
  4. do
  5. echo "$i:" >> /etc/salt/roster
  6. echo " host: $i" >> /etc/salt/roster
  7. echo " user: syspub" >> /etc/salt/roster
  8. echo " passwd: 123456aa" >> /etc/salt/roster
  9. echo " sudo: True" >> /etc/salt/roster
  10. echo " timeout: 15" >> /etc/salt/roster
  11. done

其中/root/gg为客户端IP表,例:

  1. 10.10.10.30
  2. 10.10.10.31
  3. 10.10.10.32

3.编写state.sls文件

路径:/srv/salt/minions/

目录树结构如下:

  1. |conf
  2. |---minion
    |---after.local
  3. |install2.sls

其中minion文件为salt-minion版本自带默认minion文件,after.local为配置salt-minion开机自起文件,内容如下:

#cat after.local

salt-minion -d

a.编写/srv/salt/minions/install2.sls

  1. sources_download:
  2. cmd.run:
  3. - cwd: /usr/src
  4. - names:
  5. - wget http://yum.deepay.3g/SOFT/salt/setuptools-18.3.2.tar.gz http://yum.deepay.3g/SOFT/salt/python-dateutil-1.5.tar.gz http://yum.deepay.3g/SOFT/salt/PyYAML-3.11.tar.gz http://yum.deepay.3g/SOFT/salt/MarkupSafe-0.23.tar.gz http://yum.deepay.3g/SOFT/salt/Jinja2-2.8.tar.gz http://yum.deepay.3g/SOFT/salt/pycrypto-2.6.tar.gz http://yum.deepay.3g/SOFT/salt/libsodium-1.0.2.tar.gz http://yum.deepay.3g/SOFT/salt/zeromq-4.1.3.tar.gz http://yum.deepay.3g/SOFT/salt/pyzmq-14.1.1.tar.gz http://yum.deepay.3g/SOFT/salt/msgpack-python-0.4.6.tar.gz http://yum.deepay.3g/SOFT/salt/yaml-0.1.6.tar.gz http://yum.deepay.3g/SOFT/salt/msgpack-pure-0.1.3.tar.gz http://yum.deepay.3g/SOFT/salt/swig-2.0.11.tar.gz http://yum.deepay.3g/SOFT/salt/M2Crypto-0.22.3.tar.gz http://yum.deepay.3g/SOFT/salt/salt-2015.5.5.tar.gz
  6. #上为自制地址源
    - unless: test -e setuptools-18.3.2.tar.gz
  7. setuptools_install:
  8. cmd.run:
  9. - cwd: /usr/src
  10. - names:
  11. - sudo tar zxf /usr/src/setuptools-18.3.2.tar.gz ;cd setuptools-18.3.2 ;sudo python setup.py build ;sudo python setup.py install
  12. - unless: test -d setuptools-18.3.2
  13. pythondateutil_install:
  14. cmd.run:
  15. - cwd: /usr/src
  16. - names:
  17. - sudo tar zxf python-dateutil-1.5.tar.gz ;cd python-dateutil-1.5 ;sudo python setup.py install
  18. - unless: test -d python-dateutil-1.5
  19. - require:
  20. - cmd: setuptools_install
  21. PyYAML_install:
  22. cmd.run:
  23. - cwd: /usr/src
  24. - names:
  25. - sudo tar zxf PyYAML-3.11.tar.gz ;cd PyYAML-3.11 ;sudo python setup.py install
  26. - unless: test -d PyYAML-3.11
  27. - require:
  28. - cmd: pythondateutil_install
  29. MarkupSafe_install:
  30. cmd.run:
  31. - cwd: /usr/src
  32. - names:
  33. - sudo tar zxf MarkupSafe-0.23.tar.gz ;cd MarkupSafe-0.23 ;sudo python setup.py install
  34. - unless: test -d MarkupSafe-0.23
  35. - require:
  36. - cmd: PyYAML_install
  37. Jinja2_install:
  38. cmd.run:
  39. - cwd: /usr/src
  40. - names:
  41. - sudo tar zxf Jinja2-2.8.tar.gz ;cd Jinja2-2.8 ;sudo python setup.py install
  42. - unless: test -d Jinja2-2.8
  43. - require:
  44. - cmd: MarkupSafe_install
  45. pycrypto_install:
  46. cmd.run:
  47. - cwd: /usr/src
  48. - names:
  49. - sudo tar zxf pycrypto-2.6.tar.gz ;cd pycrypto-2.6 ;sudo python setup.py install
  50. - unless: test -d pycrypto-2.6
  51. - require:
  52. - cmd: Jinja2_install
  53. libsodium_install:
  54. cmd.run:
  55. - cwd: /usr/src
  56. - names:
  57. - sudo tar zxf libsodium-1.0.2.tar.gz ;cd libsodium-1.0.2 ;sudo ./configure CC="gcc -m64" --prefix=/usr --libdir=/usr/lib64 && sudo make && sudo make install
  58. - unless: test -d libsodium-1.0.2
  59. - require:
  60. - cmd: pycrypto_install
  61. zeromq_install:
  62. cmd.run:
  63. - cwd: /usr/src
  64. - names:
  65. - sudo tar zxf zeromq-4.1.3.tar.gz ;cd zeromq-4.1.3 ;sudo ./configure --prefix=/usr CC="gcc -m64" PKG_CONFIG_PATH="/usr/lib64/pkgconfig" --libdir=/usr/lib64 && sudo make && sudo make install
  66. - unless: test -d zeromq-4.1.3
  67. - require:
  68. - cmd: libsodium_install
  69. pyzmq_install:
  70. cmd.run:
  71. - cwd: /usr/src
  72. - names:
  73. - sudo tar zxf pyzmq-14.1.1.tar.gz ;cd pyzmq-14.1.1 ;sudo python setup.py install
  74. - unless: test -d pyzmq-14.1.1
  75. - require:
  76. - cmd: zeromq_install
  77. msgpackpython_install:
  78. cmd.run:
  79. - cwd: /usr/src
  80. - names:
  81. - sudo tar zxf msgpack-python-0.4.6.tar.gz ;cd msgpack-python-0.4.6 ;sudo python setup.py install
  82. - unless: test -d msgpack-python-0.4.6
  83. - require:
  84. - cmd: pyzmq_install
  85. yaml_install:
  86. cmd.run:
  87. - cwd: /usr/src
  88. - names:
  89. - sudo tar zxf yaml-0.1.6.tar.gz ;cd yaml-0.1.6/ ;sudo ./configure && sudo make && make install
  90. - unless: test -d yaml-0.1.6
  91. - require:
  92. - cmd: msgpackpython_install
  1. msgpackpure_install:
  2. cmd.run:
  3. - cwd: /usr/src
  4. - names:
  5. - sudo tar zxf msgpack-pure-0.1.3.tar.gz ;cd msgpack-pure-0.1.3 ;sudo python setup.py install
  6. - unless: test -d msgpack-pure-0.1.3
  7. - require:
  8. - cmd: yaml_install
  9. swig_install:
  10. cmd.run:
  11. - cwd: /usr/src
  12. - names:
  13. - sudo tar zxf swig-2.0.11.tar.gz ;cd swig-2.0.11/ ;sudo ./configure ;sudo make ;sudo make install ;sudo rm -rf /usr/bin/swig; sudo ln -s /usr/local/bin/swig /usr/bin/swig
  14. - unless: test -d swig-2.0.11
  15. - require:
  16. - cmd: msgpackpure_install
  17. M2Crypto_install:
  18. cmd.run:
  19. - cwd: /usr/src
  20. - names:
  21. - sudo tar zxf M2Crypto-0.22.3.tar.gz ;cd M2Crypto-0.22.3/ ;sudo python setup.py build build_ext ;sudo python setup.py install
  22. - unless: test -d M2Crypto-0.22.3
  23. - require:
  24. - cmd: swig_install
  25. salt_install:
  26. cmd.run:
  27. - cwd: /usr/src
  28. - names:
  29. - sudo tar zxf salt-2015.5.5.tar.gz ;cd salt-2015.5.5 ;sudo python setup.py install ;sudo ln -s /usr/local/python2.6.6/bin/salt-minion /usr/bin/salt-minion
  30. - unless: test -d salt-2015.5.5
  31. - require:
  32. - cmd: M2Crypto_install
  33. minion_conf:
  34. cmd.run:
  35. - names:
  36. - sudo mkdir -p /etc/salt;
  37. - unless: test -d /etc/salt
  38. file.managed:
  39. - name: /etc/salt/minion
  40. - source: salt://minions/conf/minion
  41. - user: root
  42. - group: root
  43. - mode: 640
  44. - template: jinja
  45. - defaults:
  46. minion_id: {{ grains['fqdn_ip4'][0] }}
  47. - unless: test -e /etc/salt/minion
  48. - require:
  49. - cmd: salt_install
  50. minion_service:
      cmd.run:
        - name: sudo salt-minion -d &
        - unless: ps aux | grep salt-minion | grep -v grep
        - require:
          - file: minion_conf
    minion_file:
      file.managed:
        - name: /etc/init.d/after.local
        - source: salt://minions/conf/after.local
        - user: root
        - group: root
        - mode: 755
        - unless: test -e /etc/init.d/after.local
        - require:
          - cmd: minion_service

b.minion文件为salt-minion版本自带默认minion文件

4.部署salt-minion

salt-ssh端执行如下命令:

  1. salt-ssh -i '*' state.sls minions.install2

验证:

  1. salt-ssh -ir '*' 'ps aux | grep salt' | grep salt | grep -v grep | wc -l

对比与/root/gg中IP数目是否相等

三、问题解决

参见:  1.【问题】SUSE已经安装了libsodium,安装zeromq时出现下面的错误?

     2.【问题】报错[CRITICAL] Rendering SLS 'base:minions.install' failed: Jinja variable 'list' object has no element 0

使用Salt-ssh部署Salt-minion之源码安装(二)的更多相关文章

  1. salt源码安装软件和yum安装软件

    上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...

  2. [svc]salt源码安装软件和yum安装软件

    上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...

  3. 在ConoHa上Centos7环境下源码安装部署LNMP

    本文记录了从源码,在Centos 7上手动部署LNMP环境的过程,为了方便以后对nginx和mariadb进行升级,这里采用yum的方式进行安装. 1.建立运行网站和数据库的用户和组 groupadd ...

  4. 部署zabbix监控平台(源码安装)

    案例:部署Zabbix监控平台 1 问题 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 安装LNMP环境 源码安装Zabbix 安装监控端主机,修改基本 ...

  5. 部署 LNMP(源码安装版本)shell脚本

    #!/bin/bash # 一键部署 LNMP(源码安装版本) menu() { clear echo " ##############‐‐‐‐Menu‐‐‐‐##############& ...

  6. 源码安装python +NGINX 的坎坷路 +uwsgi安装 部署django 的CRM项目

    一.Nginx安装(基于ubuntu17.10 版本) 首先我们是基于源码安装,主要有如下步骤 1.安装依赖包 1.安装gcc g++的依赖库 sudo apt-get install build-e ...

  7. Linux下rabitMq的部署(源码安装)

    简版yum安装:https://www.jianshu.com/p/46c22834aad5 一.环境安装 1,安装预环境 通过yum安装以下组件,运行命令: [root@rabbitmqserver ...

  8. saltstack源码安装

    环境 centos6.3,python2.7.5. 1.install libzmq-master $ git clone git://github.com/zeromq/libzmq.git $ c ...

  9. 源码安装Ansible

    一.Ansible介绍 ansible是一款的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...

随机推荐

  1. iOS -- 解决iOS11中navigationBar上使用initWithCustomView按钮图片错位 frame无效

    在iOS11上当使用如下代码设置时 UIButton *shareButton = [UIButton buttonWithType:(UIButtonTypeCustom)]; shareButto ...

  2. 关于 modelNameLike 查询无数据

    ---恢复内容开始--- 1.今天在测试的时候发现 model中的name不能模糊查询. ModelQuery modelQuery = repositoryService.createModelQu ...

  3. 科研不是比赛,而是一种对未知和完美的自我追求——跟邢波(Eric Xing)面对面聊科研

    编者按:6月26日,2014年国际机器学习大会(ICML)在北京国际会议中心完美落幕.作为机器学习领域两大顶尖年会之一,这是 ICML大会30多年来首次来到中国和远东,在国内的机器学习界震动不小.身为 ...

  4. 怎样使用libcurl获取隐藏了文件后缀的url网络文件类型

    CURLINFO_CONTENT_TYPE CURL: Get Returned Content Mime Type 例如 :以下代码可以查询出天地图的tile图像类型为jpg "http: ...

  5. Oracle Database 11.2.0.4.0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证

    啥都不说了,上截图:

  6. css - font-size

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Tornado框架的初步使用

    Tornado的搭建很简单,使用pip,或者下载源码均可.   我们先看一个最简单的程序: import tornado.ioloop import tornado.web class MainHan ...

  8. CSS/JavaScript hacks,browserhacks使用

    1.网址 http://browserhacks.com/ 2.使用 (1)JavaScript Hacks 浏览器js判断 (2)条件注释hack (3)Media Query Hacks 媒体查询 ...

  9. Visual studio C++ MFC的库函数末尾添加“A”和“W”的意义

    背景 在使用Visual studio C++ MFC库函数ModifyMenu(...)函数,在Visual studio自动代码补全里提示没有ModifyMenu(...)这个函数,倒是有Modi ...

  10. iOS 计步器的几种实现方式

    代码地址如下:http://www.demodashi.com/demo/11658.html 这篇文章介绍两种可以获取计步数据的方法,一种是采用CMPedometer获取手机计步器数据,另一种是采用 ...