puppet-modulesync-configs
本节作者:余兴超
阅读级别:选读
阅读时间: 0.5小时
本节为选读章节,推荐有兴趣的读者阅读。
先睹为快
我们通过puppet-openstack-cookiebutter
模块的contrib/bootstrap.sh脚本来说明:
# Step 4: Retrieve the puppet-modulesync-configs directory and configure it for your need
#
git clone https://review.openstack.org/openstack/puppet-modulesync-configs
pushd puppet-modulesync-configs/
cat > managed_modules.yml <<EOF
---
- puppet-$proj
EOF
cat > modulesync.yml <<EOF
---
namespace:
git_base: file://$tmp_var/cookiecutter/
branch: initial_commit
EOF
# Step 5: Run msync and amend the initial commit
#
msync update --noop
pushd modules/puppet-$proj
md5password=`ruby -e "require 'digest/md5'; puts 'md5' + Digest::MD5.hexdigest('pw${proj}')"`
sed -i "s|md5c530c33636c58ae83ca933f39319273e|${md5password}|g" spec/classes/${proj}_db_postgresql_spec.rb
git remote add gerrit ssh://$user@review.openstack.org:29418/openstack/puppet-$proj.git
git add --all && git commit --amend -am "puppet-${proj}: Initial commit
This is the initial commit for puppet-${proj}.
It has been automatically generated using cookiecutter[1] and msync[2]
[1] https://github.com/openstack/puppet-openstack-cookiecutter
[2] https://github.com/openstack/puppet-modulesync-configs
"
echo "
-----------------------------------------------------------------------------------------------------
The new project has been successfully set up.
To submit the initial review please go to ${tmp_var}/puppet-modulesync-configs/modules/puppet-${proj}
and run git review.
Happy Hacking !
"
通过以上步骤,可以为一个新puppet module同步Gemfile,Rakeflie等文件,其中执行同步操作的关键命令是:
# 注意需要使用gem安装msync命令
msync update
模块讲解
打一个比方,modulesync-config模块类似于Openstack的requirements项目。用于管理Gem包的依赖,Rakefile的配置等等。它有几个重要的文件:
config_defaults.yml
: 第一层级的键表示模块被管理的文件名.sync.yml
: 出现在各自module中,将覆盖config_defaults
中的值managed_modules.yml
: 被管理的module列表modulesync.yml
: 传递到Modulesync命令行的键值对参数对
关于puppet-modulesync-configs
的用途比较单一,因此不再深入展开,更详细的解释参见其模块说明。