深入理解OpenStack自动化部署
  • 前言
  • 初识PuppetOpenstack
    • 相关约定
    • 术语表
    • PuppetOpenstack项目简介
  • Puppet开发基础
    • 关于Puppet
    • Puppet核心概念
    • 理解Hiera
    • 准备开发测试环境
  • OpenStack基础服务模块
    • puppet-apache模块
    • puppet-memcached模块
    • puppet-sysctl模块
    • puppet-rsync模块
    • puppet-xinetd模块
    • puppet-rabbitmq模块
    • puppet-firewall模块
    • puppet-mysql模块
    • puppet-vcsrepo模块
    • puppet-mongodb模块
    • puppet-ceph
  • Openstack服务模块
    • OpenStack模块代码结构
    • puppet-keystone模块
    • puppet-nova
    • puppet-neutron
    • puppet-glance
    • puppet-horizon
    • puppet-ceilometer
    • puppet-cinder
    • puppet-tempest
    • puppet-heat
    • puppet-swift
    • puppet-trove
    • puppet-sahara
    • puppet-manila
    • puppet-rally
    • puppet-designate
    • puppet-aodh模块
  • PuppetOpenstack公共库和工具类模块
    • puppet-oslo
    • puppet-vswitch模块
    • puppet-openstacklib
    • puppet-openstack-integration
    • puppet-openstack-specs
    • puppet-openstack-cookiebutter
    • puppet-modulesync-configs
    • puppet-openstack_spec_helper
    • puppet-stdlib
    • puppet-openstack_extras
  • 最佳实践
    • 模块管理
    • Hiera
    • 提交规范
    • 正确使用环境
    • 转发层规范
    • 代码风格
    • Standalone vs C\/S 模式
    • Puppet版本的选择
    • Puppet4的新特性和变化
    • Puppet的能与不能
  • 其他部署工具
    • Fuel
    • Kolla
    • TripleO
    • Packstack
    • OSA
    • DevStack
    • 编写一个定制化部署工具
  • 结语
Powered by GitBook
On this page
  • Standalone(单机模式)
  • Client/Server(客户端/服务器端模式)
  • 如何选择?
  • 适合单机模式的场景
  • 适合C/S模式的场景

Was this helpful?

  1. 最佳实践

Standalone vs C\/S 模式

Standalone(单机模式)

Puppet可以很容易地以单机模式下执行配置管理的工作。在这种模式下Puppet将会在本地 编译并且执行catalog,无需和Puppet Server通讯,适合一些简单的配置管理任务或者Puppetserver节点的自部署工作。

puppet命令支持多种使用方式,可以在终端下输入:

   puppet -v apply test.pp  # 最常用的使用方式
   puppet apply -e 'include ::ntp::server'  #执行一段puppet代码
   puppet apply --catalog catalog.json #指定执行一个catalog文件

Client/Server(客户端/服务器端模式)

C/S模式是大家都熟悉的运行模式。在这种模式下,Puppet agent端被部署在了被管理的服务器上,Puppet master(server)端部署在管理服务器上。

TODO:C/S流程图

如何选择?

脱离业务场景去谈孰优孰劣都是不合时宜的。

适合单机模式的场景

如果是个人开发环境的配置管理,少数服务器的配置管理,以及业务逻辑比较简单的情况下,推荐使用单机模式,简单方便。

适合C/S模式的场景

在涉及正式线上环境的情况下,我们推荐是C/S模式。优势非常明显:

1. 安全管理和权限控制

配置管理代码中其实包含了大量的敏感信息,其一旦发生泄漏或者权限被越界,就发导致严重的安全问题。

在单机模式下,每台服务器都会拿到完整的puppet代码和hiera数据,试想一台Apache服务器上放着MySQL服务器的配置管理代码和管理员用户名密码是何其危险的事情!

另外,在CS模式下,agent端和server端通过SSL进行通信,并且可以根据节点的FQDN做细粒度的控制,试想一台伪造自己是数据库服务器的节点,在向服务器端请求就轻而易举地拿到了数据库节点的catalog也是非常危险的事情。

2.支持高级特性

在C/S模式下,通过开启storeconfigs参数,配合PuppetDB,可以使用Puppet中诸如exported_resources等高级特性。

3.集中式管理

在单机模式下,若要批量执行puppet配置管理任务,一般选择使用集群管理工具例如clustershell等做批量的变更操作。 在C/S模式下,agent既可以定期地从server端获取最新的catalog,也可以由Server端主动地发送更新指令。 此外,在C/S模式下,agent端在完成配置应用的任务后,可以发送report给Server端或者其他服务器。

Previous代码风格NextPuppet版本的选择

Last updated 6 years ago

Was this helpful?