二、源码安装篇

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

1.salt-minion端环境:

  系统:SUSE SP3 64bit

  python版本:2.6.6

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

2.配置/etc/salt/roster

例:

10.10.10.30:
host: 10.10.10.30
user: syspub    #普通用户,有无密码sudo权限
passwd: 123456aa
sudo: True
timeout: 15

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

vim ip.sh
#!/bin/bash
for i in `cat /root/gg`
do
echo "$i:" >> /etc/salt/roster
echo " host: $i" >> /etc/salt/roster
echo " user: syspub" >> /etc/salt/roster
echo " passwd: 123456aa" >> /etc/salt/roster
echo " sudo: True" >> /etc/salt/roster
echo " timeout: 15" >> /etc/salt/roster
done

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

10.10.10.30
10.10.10.31
10.10.10.32

3.编写state.sls文件

路径:/srv/salt/minions/

目录树结构如下:

|conf
|---minion
|---after.local
|install2.sls

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

#cat after.local

salt-minion -d

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

sources_download:
cmd.run:
- cwd: /usr/src
- names:
- 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
#上为自制地址源
- unless: test -e setuptools-18.3.2.tar.gz
setuptools_install:
cmd.run:
- cwd: /usr/src
- names:
- 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
- unless: test -d setuptools-18.3.2
pythondateutil_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf python-dateutil-1.5.tar.gz ;cd python-dateutil-1.5 ;sudo python setup.py install
- unless: test -d python-dateutil-1.5
- require:
- cmd: setuptools_install
PyYAML_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf PyYAML-3.11.tar.gz ;cd PyYAML-3.11 ;sudo python setup.py install
- unless: test -d PyYAML-3.11
- require:
- cmd: pythondateutil_install
MarkupSafe_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf MarkupSafe-0.23.tar.gz ;cd MarkupSafe-0.23 ;sudo python setup.py install
- unless: test -d MarkupSafe-0.23
- require:
- cmd: PyYAML_install
Jinja2_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf Jinja2-2.8.tar.gz ;cd Jinja2-2.8 ;sudo python setup.py install
- unless: test -d Jinja2-2.8
- require:
- cmd: MarkupSafe_install
pycrypto_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf pycrypto-2.6.tar.gz ;cd pycrypto-2.6 ;sudo python setup.py install
- unless: test -d pycrypto-2.6
- require:
- cmd: Jinja2_install
libsodium_install:
cmd.run:
- cwd: /usr/src
- names:
- 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
- unless: test -d libsodium-1.0.2
- require:
- cmd: pycrypto_install
zeromq_install:
cmd.run:
- cwd: /usr/src
- names:
- 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
- unless: test -d zeromq-4.1.3
- require:
- cmd: libsodium_install
pyzmq_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf pyzmq-14.1.1.tar.gz ;cd pyzmq-14.1.1 ;sudo python setup.py install
- unless: test -d pyzmq-14.1.1
- require:
- cmd: zeromq_install
msgpackpython_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf msgpack-python-0.4.6.tar.gz ;cd msgpack-python-0.4.6 ;sudo python setup.py install
- unless: test -d msgpack-python-0.4.6
- require:
- cmd: pyzmq_install
yaml_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf yaml-0.1.6.tar.gz ;cd yaml-0.1.6/ ;sudo ./configure && sudo make && make install
- unless: test -d yaml-0.1.6
- require:
- cmd: msgpackpython_install
msgpackpure_install:
cmd.run:
- cwd: /usr/src
- names:
- sudo tar zxf msgpack-pure-0.1.3.tar.gz ;cd msgpack-pure-0.1.3 ;sudo python setup.py install
- unless: test -d msgpack-pure-0.1.3
- require:
- cmd: yaml_install
swig_install:
cmd.run:
- cwd: /usr/src
- names:
- 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
- unless: test -d swig-2.0.11
- require:
- cmd: msgpackpure_install
M2Crypto_install:
cmd.run:
- cwd: /usr/src
- names:
- 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
- unless: test -d M2Crypto-0.22.3
- require:
- cmd: swig_install
salt_install:
cmd.run:
- cwd: /usr/src
- names:
- 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
- unless: test -d salt-2015.5.5
- require:
- cmd: M2Crypto_install
minion_conf:
cmd.run:
- names:
- sudo mkdir -p /etc/salt;
- unless: test -d /etc/salt
file.managed:
- name: /etc/salt/minion
- source: salt://minions/conf/minion
- user: root
- group: root
- mode: 640
- template: jinja
- defaults:
minion_id: {{ grains['fqdn_ip4'][0] }}
- unless: test -e /etc/salt/minion
- require:
- cmd: salt_install
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端执行如下命令:

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

验证:

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. t-sql 笔记(1)

    Toad-for-SQL-Server-Freeware 1.查询哪些数据库对象使用了某个表 SELECT b.[name], a.[definition] FROM sys.all_sql_modu ...

  2. Oracle导入本属于sys用户的表

    FlashBack Database后,将删除的数据导出时使用了system用户 exp system/oracle file=/home/oracle/test.dmp tables=sys.tes ...

  3. PHP图片的类型将其自动编码成base64

    <!--根据图片的类型将其自动编码成base64--><html><head><?php$file="test.jpg";$type=ge ...

  4. 如何格式化被压缩的JS代码以方便阅读

    本文分两部分: 1.转载部分 2.个人补充部分 1.主题内容转载83,http://www.madeby83.com/unzip-the-js-code.html 我们经常可以看到一些网站,把所需的j ...

  5. [Python爬虫] 之二十四:Selenium +phantomjs 利用 pyquery抓取中广互联网数据

    一.介绍 本例子用Selenium +phantomjs爬取中广互联网(http://www.tvoao.com/select.html)的资讯信息,输入给定关键字抓取资讯信息. 给定关键字:数字:融 ...

  6. 支付宝支付系统繁忙,请稍后再试(ALI64)错误解决

    解决方法:将商户支付參数的seller邮箱换成与partner同样的数字串,依然无法支付请检查所给參数

  7. EffectiveJava(23)为什么不能在新生代码中使用原生态类型

    泛型类和泛型接口 声明一个或者多个类型参数的类或者接口. 为什么不要在新代码中使用原生态类型 原生态类型,即泛型不带参数的类型 如List的list,list就是其原生态类型 1.使用原生态类型,插入 ...

  8. HTML5 Canvas 绘制库存变化折线 计算出库存周转率

    <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type&quo ...

  9. java基础知识汇总4

    三.集合(collection.set.list.map) 一.定义: 集合是Java里面最经常使用的,也是最重要的一部分.可以用好集合和理解好集合对于做Java程序的开发拥有无比的优点. 容器:用来 ...

  10. web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数)

    web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数) 说明:凡函数中以日期作为參数因子的,当中日期的形式都必须是yy/mm/dd.并且必须用英文环境下双引號(" & ...