如何使用saltstack安装东西?

时间:2016-01-14 12:16:41

标签: salt-stack

对于初学者来说,Saltstack文档非常困难且不清楚。如果你能给出一个简单的例子,说明如何使用saltstack在vagrant机器上安装东西,我将非常感激

3 个答案:

答案 0 :(得分:2)

我相信一些教程已经在网上了。我可以提供一些我的:

Setup Zabbix using Salt in a masterless setup,这将安装Zabbix所需的PHP堆栈。

Setup Consul in the cloud at DigitalOcean, with Saltstack.包含完整脚本,但也适用于Vagrant(请参阅cheatsheet.adoc)

答案 1 :(得分:1)

我认为启动时对我的最大帮助是SaltStack教程。 https://docs.saltstack.com/en/getstarted/fundamentals/index.html

states教程给出了安装rsync,lftp和curl的示例: https://docs.saltstack.com/en/getstarted/fundamentals/states.html

本教程介绍如何使用主人和几个小兵来设置你需要的流浪汉,显示目标小兵的基本知识和设置状态文件(告诉Salt如何对小兵做什么的文件)。

除此之外还有更多的东西,但这是一个良好的开端。

答案 2 :(得分:0)

在Saltstack中有两种类型的机器: 大师:顾名思义,这就是控制。您可以使用它在多个小兵上运行任务。 奴才:奴才就像奴隶。您可以在小黄人上运行命令,或安装任何软件包,通过master在小黄人上运行脚本。基本上,您应该能够通过主计算机完成通过登录Minion计算机可以运行的任何命令或任何任务。

您可以将要在minion上执行的所有任务写到sls文件中,然后运行它。 Saltstack具有应与所需参数一起调用的函数。每个功能执行特定的任务。 Saltstack具有执行模块和状态模块 执行模块: 它们旨在在小兵上执行任务。例如:mysql.query将查询指定的数据库。执行模块不检查是否需要查询数据库。它只是执行任务。 查看模块的完整列表,您会发现它们只会为您执行任务。 https://docs.saltstack.com/en/latest/ref/modules/all/index.html

状态模块: 它称为THE状态模块。 状态模块也是一个模块。但这是一个特殊的。使用状态模块,您可以为小黄人创建状态(/ srv / salt下的sls文件)。 例如,您可以创建一个状态,以确保Minion具有为www.example.com配置的Web服务器。

创建状态后,可以将其与状态模块一起应用:salt state.apply example_webserver

example_webserver状态指定了Minion需要具备的内容。如果小兵已经处于正确的状态,它什么也不做。如果小兵不在正确的状态,它将尝试到达那里。 可以在这里找到状态模块:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.module.html

示例sls文件:

//This state is to make sure git is installed. If yes : no action will be taken if not it will be installed.
git_install:
  pkg.installed:
    - name: git
//This step makes sure the folder with the specified name is not present. If it is present it will be deleted. Here "delete_appname_old" is the step name and should not be duplicated in the same sls file
delete_appname_old:
  file.absent:
    - name: /home/user/folder_name
//This step is for cloning a git project
clone_project:
  module.run:
    - name: git.clone
    - url: ssh://gitreposshclonelink
    - cwd: /home/user/folder_name
    - user: $username
    - identity: $pathofsshkey