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。
另请参见
- lxc Linux Containers
- libvirt The virtualization API
- GitPython
- ElementTree XML API
- Appendix D. Random Bits - D.3. Installing Debian GNU/Linux from a Unix/Linux System
另请参见这些文档。
待办事项
- 使用debootstrap支持远程主机目标
- 添加节点时检测到注册同一主机
- 添加unittest