lxc部署和配置管理工具

iori的Python项目详细描述


什么是“iori”?

“iori”是指一个简单的小屋。它是用汉字写的“庵”,这个字符是Unicode中的0x5EB5。

iori是用于部署和配置linux容器管理工具(lxc)的命令行工具。使用lxc时,通常需要使用lxc userland命令行工具作为“lxc-*”的开头。lxc提供了模板配置文件和脚本。但是,如果要从远程控制器主机进行管理,很难按批量处理容器。所以这个工具用libvirt api控制lxc,用git存储库管理这些配置文件。

这个工具能够管理lxc容器的多个主机。一个分支作为一个主机进行管理。分支名称是从主机名(或fqdn)或ipv4或ipv6地址生成的。“master”分支将用于映射。“template”分支用于每个节点的模板。

要求

  • python 2.7版
  • python libvirt(0.9.12)
  • Gitpython(0.3.2-rc1)
  • CDebootstrap(非脱钩测试)

您不需要安装lxc包。:)

设置

mount cgroup文件系统

先挂载cgroup文件系统。在/etc/fstab后面追加一行,执行“sudo mount-a.”:

cgroup /sys/fs/cgroup cgroup defaults 0 0

如果使用debian gnu/linux wheezy/sid,请将下面的选项设置为/etc/default/grub,然后执行“sudo update-grub2&;sudo shutdown-r now”。

GRUB_CMDLINE_LINUX="cgroup_enable=memory"

ubuntu 12.04不需要设置这个选项。

安装iori依赖的debian包

iori依赖于gitpython、python libvirt和libvirt以及python2.7。安装这些软件包。:

$ sudo apt-get install python-git libvirt-bin python-libvirt

安装iori

用三种方法之一安装该选项。

源代码

$ git clone https://github.com/mkouhei/iori.git
$ cd iori
$ sudo python setup.py install

pypi

$ pip install iori

Debian软件包

尚未正式打包,然后从https://github.com/mkouhei/iori/downloads下载python-iori-x.x_all.deb并使用dpkg命令安装。:

$ wget https://github.com/mkouhei/iori/download/python-iori_x.x-x_all.deb
$ sudo dpkg -i python-iori_x.x-x_all.deb

将用户帐户添加到libvirt(libvirtd)组

向libvirt或libvirtd group添加用于使用iori的用户帐户。:

$ sudo adduser <youraccount> libvirt

libvirt代表debian,libvirtd代表ubuntu。

使direcotry

如果目录“/VAR/LIB/LXC”不存在,请注明:

$ sudo mkdir /var/lib/lxc

历史记录

请参见docs/history.rst

快速入门指南

创建存储库

创建$home/.iori目录并初始化git存储库。

$ iori newrepo

将lxc主机节点添加到git存储库

生成lxc主机节点的命名主机名分支,选中该分支。:

$ iori addnode -n localhost

定义libvirt xml文件并创建rootfs映像

生成libvirt域的xml文件,并以此xml定义域,使用debootstrap命令创建rootfs映像。然后保存该域的XML文件。:

$ iori deploy -n localhost -c testcont01 --rootfs /var/lib/lxc/testcont01

启动容器

从上面的域启动容器。:

$ iori start -n localhost -c testcont01

开发

在git克隆之后复制预提交钩子脚本。:

$ cp -f utils/pre-commit.txt .git/hooks/pre-commit

接下来安装python 2.7和notests,libvirt,python libvirt,gitpython,cdebootstrap。下面是Debian GNU/Linux SID系统的用法。

$ sudo apt-get install python python-libvirt python-git python-nose

然后签出“devel”分支进行开发,提交更改。在pull请求之前,执行git rebase。

待办事项

  • 使用debootstrap支持远程主机目标
  • 添加节点时检测到注册同一主机
  • 添加unittest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Selenium“findElement”找不到现有对象   java hibernate如何在JPA风格的引导过程中注册实体类   java为什么getX()方法首先执行而不是构造函数   Java写入int的第一个字节   java Word文档到html解析器,保留所有文本样式(下标、上标、项目符号等)   为每个java对象实例生成唯一字符串   Java类卡片枚举示例。修订过的   Android与Java内部类概念   在java中优化x小数位的答案   从队列的挂起消息列表中提取消息时出现java性能问题   java查找正则表达式的哪个部分导致了匹配   Java8函数“包装器”函数,在执行给定的lambda之前执行某些操作?   带有限定符@Default的ZZZZ类型的java未满足依赖项   如何在java中将XML文件转换为LaTex?   Android中的java封闭文本边界?   java如何更改此代码,使其更新当前用户而不是创建新用户?   java spring启动应用程序属性暂存和生产   Java:如何将字符串转换为int   java跟踪NullPointerException的最佳方法是什么?   java为什么我的JAR文件在与ProGuard混淆后不能运行?主类正在变得模糊/库