天天看點

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,如需轉載請自行聯系原作者

繼續閱讀