RUNNING SALT STATES AND COMMANDS IN DOCKER CONTAINERS - 使用Salt管理docker容器

RUNNING SALT STATES AND COMMANDS IN DOCKER CONTAINERS

Salt的2016.11.0版本引入了直接在Docker容器内执行Salt States和Salt远程执行命令的能力。

这个功能使得不仅仅可以使用Salt States来部署新容器,也允许使用Salt对运行中的容器做审核和修改,但不需要在容器内运行Salt Minion。 一些应用场景包括运行容器的安全审核以及从容器收集操作数据等。

这个新功能简单明了,可以通过一个运行中的Salt Minion、Salt Call命令或Salt SSH来使用。 对于本教程,我们将使用salt-call命令,但是像所有salt命令一样,这些调用可以直接转换为salt和salt-ssh。

STEP 1 - INSTALL DOCKER

由于Docker文档中很好地介绍了Docker的设置,因此我们不会在此处对此进行描述。 有关安装和设置Docker的信息,请参阅Docker安装文档:https://docs.docker.com/engine/installation/

集成Docker的功能支持还要求安装docker-py库。 这可以使用pip或通过系统包管理器轻松完成:

pip install docker-py

STEP 2 - INSTALL SALT

在本教程中,我们将使用salt-minion包中提供的Salt Call,请按照此处的Salt Installation文档进行操作:https://repo.saltstack.com/

STEP 3 - CREATE WITH SALT STATES

接下来需要定义一些Salt状态,对于这个例子,使用安装vim的一个非常简单的状态,但是Salt States可以做的任何事情都可以在这里完成,请参阅Salt States Introduction Tutorial以了解有关Salt States的更多信息:https://docs.saltstack.com/en/stage/getstarted/config/

在本教程中,只需在/srv/salt/vim.sls中创建一个小型的状态文件:

vim:
  pkg.installed

注:你选择管理的容器基本镜像需要已经安装python 2.6或2.7。 我们希望在将来的版本中解决这个约束。

如果省略base,则使用的默认镜像是具有Python支持的最小openSUSE映像,由SUSE维护

下一步,运行 docker.sls_build 命令:

salt-call --local dockerng.sls_build test base=my_base_image mods=vim

现在我们有了一个名为test的容器,并且已经安装了vim。

STEP 4 - RUNNING COMMANDS INSIDE THE CONTAINER

Salt现在可以使用另一个简单的salt-call命令在容器内运行远程执行函数了:

salt-call --local dockerng.call test test.version
salt-call --local dockerng.call test network.interfaces
salt-call --local dockerng.call test disk.usage
salt-call --local dockerng.call test pkg.list_pkgs
salt-call --local dockerng.call test service.running httpd
salt-call --local dockerng.call test cmd.run 'ls -l /etc'

猜你喜欢

转载自blog.csdn.net/watermelonbig/article/details/93843162
今日推荐