consul-rpm, 打包领事所需的规格文件和来源

分享于 

6分钟阅读

GitHub

  繁體 雙語
Spec file and sources needed to package consul
  • 源代码名称:consul-rpm
  • 源代码网址:http://www.github.com/tomhillable/consul-rpm
  • consul-rpm源代码文档
  • consul-rpm源代码下载
  • Git URL:
    git://www.github.com/tomhillable/consul-rpm.git
    Git Clone代码到本地:
    git clone http://www.github.com/tomhillable/consul-rpm
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/tomhillable/consul-rpm
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    用于领事的 RPM规范

    尝试遵循来自Fedora的包指南插件。

    • 二进制:/usr/bin/consul
    • 配置:/etc/consul.d/
    • 共享状态:/var/lib/consul/
    • Sysconfig: /etc/sysconfig/consul
    • WebUI: /usr/share/consul/
    使用

    使用下面的构建部分中列出的一种技术创建 rpm。

    预编译软件包

    预构建软件包是通过 Fedora Copr 系统维护的。 有关更多信息,请参见 duritong/领事存储库。

    插件生成

    有许多方法可以构建 consulconsul-ui rpm:

    • 手册
    • Vagrant
    • Docker

    每种方法最终都做同样的事情- 选一个最适合你的方法。

    版本

    版本号被硬编码到规范中,但是你应该选择,它可以通过直接将参数传递给 rpmbuild:

    
    $ rpmbuild --define"_version 0.6.3"
    
    
    
    

    手册

    将RPM作为非根用户从你的主目录中构建:

    • 看看这个 repo,认真点。 Nice。

      
      git clone <this_repo_url>
      
      
      
      
    • 安装 rpmdevtoolsmock

      
      sudo yum install rpmdevtools mock
      
      
      
      
    • 设置 rpmbuild 目录树。

       
      rpmdev-setuptree
      
      
      
       
    • 链接spec文件和源。

      
      ln -s $HOME/consul-rpm/SPECS/consul.spec $HOME/rpmbuild/SPECS/
      
      
      find $HOME/consul-rpm/SOURCES -type f -exec ln -s {} $HOME/rpmbuild/SOURCES/;
      
      
      
      
    • 下载远程源文件。

      
      spectool -g -R rpmbuild/SPECS/consul.spec
      
      
      
      
    • 如果你的发行版有一个老版本的cURL ( CentOS 6. x, 示例),Spectool可能会失败- 如果是这样的话,使用 Wget。

      
      VER=`grep Version rpmbuild/SPECS/consul.spec | awk '{print $2}'`
      
      
      URL='https://dl.bintray.com/mitchellh/consul'
      
      
      wget $URL/consul_${VER}_linux_amd64.zip -O $HOME/rpmbuild/SOURCES/consul_${VER}_linux_amd64.zip
      
      
      wget $URL/consul_${VER}_web_ui.zip -O $HOME/rpmbuild/SOURCES/consul_${VER}_web_ui.zip
      
      
      
      
    • 构建 RPM。

      
      rpmbuild -ba rpmbuild/SPECS/consul.spec
      
      
      
      

    如果安装了 Vagrant:

    • 查看这个 repo。

      
      git clone https://github.com/tomhillable/consul-rpm
      
      
      
      
    • 编辑 Vagrantfile 以指向你最喜欢的框( 本示例中的Bento CentOS7 )。

      
      config.vm.box ="http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box"
      
      
      
      
    • Vagrant 在配置后,rpm将被复制到工作目录。

       
      vagrant up
      
      
      
       

    Docker

    如果你喜欢使用 Docker 构建它:

    • 构建 Docker 映像。注意,如果需要特定的操作系统生成( 默认值为 centos7 ),则必须修改 Dockerfile 标头。

      
      docker build -t consul:build. 
      
      
      
      
    • 运行生成。

      
      docker run -v $HOME/consul-rpms:/RPMS consul:build
      
      
      
      
    • $HOME/consul-rpms 中检索生成的rpm。

    结果

    三个 rpm:

    • 领事服务器
    • consul用户界面
    • 领事模板
    运行
    • 安装 RPM。
    • 将配置文件放在 /etc/consul.d/ 中。
    • /etc/sysconfig/consul 中将 命令行 参数更改为 consul。
      • 如果这是第一个服务器和实例,则添加 -bootstrap
    • 启动服务并跟踪日志 systemctl start consul.servicejournalctl -f
      • 在重新启动时启用 systemctl enable consul.service
    • 领事可能会抱怨 GOMAXPROCS 设置。 忽略这里选项是安全的;但是,警告可以通过注释 /etc/sysconfig/consul 中的适当行来为 supressed。

    配置

    配置文件以字典顺序从 config-dir 加载。 提供了一些样本配置。

    更多信息

    查看 consul.io 网站。

    向后兼容性

    这里软件包的早期verisons使用 /etc/consul/ 作为默认配置目录。 到 0.7.2时,默认目录更改为 /etc/consul.d/,以便与offcial领事docuemntation对齐。 为了避免在升级期间破坏现有安装,将在包安装过程中创建两个目录的。


    文件  Source  PAC  PACK  CONS  spec  
    相关文章