天天看点

1.2 Salt-ssh批量自动安装被控端minion

<code>[root@bogon salt]</code><code># cat master</code>

<code>file_roots:</code>

<code>  </code><code>base:</code>

<code>    </code><code>-</code> <code>/</code><code>srv</code><code>/</code><code>salt</code><code>/</code><code>base</code>

<code>  </code><code>prod:</code>

<code>    </code><code>-</code> <code>/</code><code>srv</code><code>/</code><code>salt</code><code>/</code><code>prod</code>

<code>interface: </code><code>192.168</code><code>.</code><code>88.3</code>

<code>reactor:</code>

<code>    </code><code>-</code> <code>'salt/auth'</code><code>:</code>

<code>        </code><code>-</code> <code>/</code><code>srv</code><code>/</code><code>reactor</code><code>/</code><code>Minion.sls</code>

<code>    </code><code>-</code> <code>'salt/minion/*/start'</code><code>:</code>

<code>        </code><code>-</code> <code>/</code><code>srv</code><code>/</code><code>reactor</code><code>/</code><code>auto.sls</code>

<code>        </code> 

<code>[root@bogon salt]</code><code># cat roster</code>

<code>m10:</code>

<code>   </code><code>host: </code><code>192.168</code><code>.</code><code>88.6</code>

<code>   </code><code>user: root</code>

<code>   </code><code>passwd: </code><code>123456</code>

<code>/</code><code>srv</code><code>/</code><code>salt目录结构      </code>

<code>conf  install.sls  yum.repos.d</code>

<code>[root@bogon minions]</code><code># cat install.sls </code>

<code>minion_yum:</code>

<code>  </code><code>file</code><code>.recurse:</code>

<code>    </code><code>-</code> <code>name: </code><code>/</code><code>etc</code><code>/</code><code>yum.repos.d</code>

<code>    </code><code>-</code> <code>source: salt:</code><code>/</code><code>/</code><code>minions</code><code>/</code><code>yum.repos.d</code>

<code>    </code><code>-</code> <code>user: root</code>

<code>    </code><code>-</code> <code>group: root</code>

<code>    </code><code>-</code> <code>file_mode: </code><code>644</code>

<code>    </code><code>-</code> <code>dir_mode: </code><code>755</code>

<code>    </code><code>-</code> <code>include_empty: </code><code>True</code>

<code>minion_install:</code>

<code>  </code><code>pkg.installed:</code>

<code>    </code><code>-</code> <code>pkgs:</code>

<code>      </code><code>-</code> <code>salt</code><code>-</code><code>minion</code>

<code>    </code><code>-</code> <code>require:</code>

<code>      </code><code>-</code> <code>file</code><code>: minion_yum</code>

<code>    </code><code>-</code> <code>unless: rpm </code><code>-</code><code>qa | grep salt</code><code>-</code><code>minion</code>

<code>minion_conf:</code>

<code>  </code><code>file</code><code>.managed:</code>

<code>    </code><code>-</code> <code>name: </code><code>/</code><code>etc</code><code>/</code><code>salt</code><code>/</code><code>minion</code>

<code>    </code><code>-</code> <code>source: salt:</code><code>/</code><code>/</code><code>minions</code><code>/</code><code>conf</code><code>/</code><code>minion </code>

<code>    </code><code>-</code> <code>mode: </code><code>640</code>

<code>      </code><code>-</code> <code>pkg: minion_install</code>

<code>minion_service:</code>

<code>  </code><code>service.running:</code>

<code>    </code><code>-</code> <code>name: salt</code><code>-</code><code>minion</code>

<code>    </code><code>-</code> <code>enable: </code><code>True</code>

<code>      </code><code>-</code> <code>file</code><code>: minion_conf </code>

<code> </code> 

<code>[root@bogon minions]</code><code># cat conf/minion </code>

<code>master: </code><code>192.168</code><code>.</code><code>88.3</code>

<code>id</code><code>: m10 </code>

<code>     </code> 

<code>这样可以完成自动验证</code>

<code>[root@bogon salt]</code><code># cat /srv/reactor/Minion.sls </code>

<code>{</code><code>%</code> <code>if</code> <code>'act'</code> <code>in</code> <code>data </code><code>and</code> <code>data[</code><code>'act'</code><code>] </code><code>=</code><code>=</code> <code>'pend'</code> <code>%</code><code>}</code>

<code>minion_add:</code>

<code>  </code><code>wheel.key.accept:</code>

<code>    </code><code>-</code> <code>match: {{ data[</code><code>'id'</code><code>] }}</code>

<code>{</code><code>%</code> <code>endif </code><code>%</code><code>}</code>

<code>[root@bogon salt]</code><code># cat /srv/reactor/auto.sls </code>

<code>run_state:</code>

<code>    </code><code>local.state.sls:</code>

<code>        </code><code>-</code> <code>tgt: {{ data[</code><code>'id'</code><code>] }}</code>

<code>        </code><code>-</code> <code>arg:</code>

<code>            </code><code>-</code> <code>shencan</code>

<code>run_init:</code>

<code>    </code><code>local.cmd.run:</code>

<code>            </code><code>-</code> <code>echo initsok &gt;&gt;</code><code>/</code><code>tmp</code><code>/</code><code>cpis</code>

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

总是研究一个东西,被很多东西诱惑,搞到最后目标都没了。靠。

参考 http://zkhylt.blog.51cto.com/3638719/1782990

salt升级

https://repo.saltstack.com/yum

yum install salt-minion python26-zmq -y

#yum install --downloadonly --downloaddir=/home salt-2016

先决条件,全部在master操作

vim /etc/hosts

172.1.1.2 id1

vim /etc/salt/roster

id1:

   host: 172.1.1.2

   user: root

   passwd: xx

master  172.1.1.1

<code>[root@nginx minions]</code><code># tree</code>

<code>.</code>

<code>├── conf</code>

<code>│   └── minion</code>

<code>├── install.sls</code>

<code>└── yum.repos.d</code>

<code>    </code><code>├── Centos</code><code>-</code><code>Base</code><code>-</code><code>6.repo</code>

<code>    </code><code>└── salt</code><code>-</code><code>latest.repo</code>

[root@nginx minions]# cat /etc/salt/master

file_roots:

  base:

    - /srv/salt

  prod:

    - /srv/salt/prod

  minion:

    - /srv/salt/minions

interface: 172.1.1.1

nodegroups:

     mysql: 'id1'

cd /srv/salt/minions

<code>[root@nginx minions]</code><code># cat install.sls </code>

<code>    </code><code>-</code> <code>template: jinja</code>

<code>    </code><code>-</code> <code>defaults:</code>

<code>      </code><code>minion_id: {{ grains[</code><code>'fqdn_ip4'</code><code>][</code><code>0</code><code>]}}</code>

<code>      </code><code>-</code> <code>file</code><code>: minion_conf</code>

cat /srv/salt/minions/conf/minion

master: 172.1.1.1

id: id1

写完后,运行命令

任何目录 salt-ssh -i '*' state.sls minions.install

salt-ssh -ir '*' 'ps aux | grep salt' | grep salt | grep -v grep| wc -l ##查看安装minion端的salt-minion进程是否运行,一个客户端运行一个salt-minion服务

完毕。

本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1928970,如需转载请自行联系原作者

继续阅读