puppet ssh模块配置

为了ssh配置文件安全性,保证配置权限不被串改,可以通过puppet统一管理.

1 . 创建ssh模块相关目录:

[email protected]:ssh# pwd
/etc/puppet/modules/ssh
[email protected]:ssh# ll
total 12
drwxr-xr-x 2 root root 4096 Nov  9 10:42 files
drwxr-xr-x 2 root root 4096 Dec 16 18:15 manifests
drwxr-xr-x 2 root root 4096 Dec 16 18:15 templates

2. 定义ssh模块全局配置:

[email protected]:manifests# vim init.pp
class ssh{
    include ssh::params,ssh::install,ssh::config,ssh::service
}

3.创建安装ssh包文件:

[email protected]:manifests# cat install.pp
class ssh::install {
    package { $ssh::params::ssh_package_name:
              ensure        => present,
              allow_virtual => true,
    }
}

4. 创建变量文件,根据不同操作系统使用相应变量.

[email protected]:manifests# cat params.pp
class ssh::params {
    case $::operatingsystem {
            Slaris:  {
                       $ssh_package_name = ‘openssh‘
                       $ssh_service_config = ‘/etc/ssh/sshd_config‘
                       $ssh_service_name = ‘sshd‘
            }
            /^(Ubuntu|Debian)$/: {
                       $ssh_package_name = ‘openssh-server‘
                       $ssh_service_config = ‘/etc/ssh/sshd_config‘
                       $ssh_service_name = ‘sshd‘
            }
            default: {
                       $ssh_package_name = ‘openssh-server‘
                       $ssh_service_config = ‘/etc/ssh/sshd_config‘
                       $ssh_service_name = ‘sshd‘
            }
     }
}

5.创建ssh配置文件

[email protected]:manifests# cat config.pp
class ssh::config {
    file { $ssh::params::ssh_service_config:
        owner   => root,
        group   => root,
        mode    => 0644,
        ensure  => present,
        content => template("ssh/sshd_config.erb"),
        require => Class["ssh::install"],
        notify  => Class["ssh::service"],
     }
}

6.创建ssh服务文件

[email protected]:manifests# cat service.pp
class ssh::service {
    service {$ssh::params::ssh_service_name:
        ensure     =>  running,
        hasstatus  =>  true,
        hasrestart =>  true,
        enable     =>  true,
        require    =>  Class["ssh::config"],
    }
}

7.客户端测试

[email protected]:~# puppet agent --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for agent.domain.com
Info: Applying configuration version ‘1418724923‘
Notice: Finished catalog run in 0.43 seconds
[email protected]:~# puppet agent --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for agent.domain.com
Info: Applying configuration version ‘1418724963‘
Notice: /Stage[main]/Ssh::Config/File[/etc/ssh/sshd_config]/content:
--- /etc/ssh/sshd_config	2014-12-16 17:54:57.925899311 +0800
+++ /tmp/puppet-file20141216-29636-1fidan3-0	2014-12-16 18:16:06.120181312 +0800
@@ -145,3 +145,4 @@
 ####################################
 HostKey /etc/ssh/ssh_host_rsa_key
 HostKey /etc/ssh/ssh_host_dsa_key
+#davehe

Info: Computing checksum on file /etc/ssh/sshd_config
Info: /Stage[main]/Ssh::Config/File[/etc/ssh/sshd_config]: Filebucketed /etc/ssh/sshd_config to puppet with sum 2f42725b0c617b2ec7b9dd2db6c8fe61
Notice: /Stage[main]/Ssh::Config/File[/etc/ssh/sshd_config]/content: content changed ‘{md5}2f42725b0c617b2ec7b9dd2db6c8fe61‘ to ‘{md5}53141dd1bb8749a04a5fd2a2f05b2b2a‘
Info: /Stage[main]/Ssh::Config/File[/etc/ssh/sshd_config]: Scheduling refresh of Class[Ssh::Service]
Info: Class[Ssh::Service]: Scheduling refresh of Service[sshd]
Notice: /Stage[main]/Ssh::Service/Service[sshd]: Triggered ‘refresh‘ from 1 events
Notice: Finished catalog run in 0.73 seconds
时间: 2024-12-13 05:55:47

puppet ssh模块配置的相关文章

Puppet模块(五):SSH模块及ssh资源

作用:通过SSH模块管理客户端的ssh远程服务,并用key认证方式替代密码认证方式,提高安全性: 本例分两阶段,首先是ssh的安装.配置及服务管理,然后是使用如何转换成key认证方式. #第一阶段 1.服务端配置ssh模块 (1)模块清单 [[email protected] ~]# tree /etc/puppet/modules/ssh/ /etc/puppet/modules/yum/ ├── files │   └── sshd_config ├── manifests │   ├── 

一步一步学会puppet(二)--模块和类

上一篇主要介绍了puppet的基本工作原理和资源的相关初步使用: 这一篇主要介绍puppet中很重要的2个概念:模块和类: =================================================================== 1 模块 1.1 需求 1.2 定义 1.3 详细说明 1.4 模块的目录组织结构 1.5 模块管理 2 类 2.1 定义 2.2 详细说明 2.3 类的分类 2.4 类的声明 2.5 实例 ========================

puppet yum安装配置,简单证书维护

Puppet学习之puppet的安装和配置 一.Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理.Puppet适用于服务器管的整个过程 ,比如初始安装.配置更新以及系统下线. 二.Puppet的安装 Puppet的安装方式支持源码安装.yum安装以及ruby的gem安装.官网推荐使用yum来安装puppet,方面以后的升级.管理.维护.Cento

puppet完整模块实例分步解读

本文示例针对puppet自身模块,详细解读模块的结构及语法应用,通过本例的学习,可以掌握puppet模块应用的技能,为自动化应用打下坚实基础. 下面就以agent为例分步测试 1  创建puppet模块目录结构 [[email protected] ~]# cd /etc/puppet/modules/                        #进入模块主目录 [[email protected] modules]#  mkdir puppet                       

puppet安装和配置

Puuppet是一个开源的新一代的集中化配置管理工具,它由自己所声明的语言表达系统配置,通过客户端与服务端直接的连接,维护着关系库. Puppet是一个跨平台的集中化配置管理系统,它使用自由的描述语言,可管理配置文件.用户.Cron.软件包,系统服务等,Puppet把这些统称为"资源". Puppet是基于Ruby语言并使用Apache协议授权的开源软件,它既能以客户端-服务端(C/S)的方式运行,也能独立运行.客户端默认每30分钟会与服务端确认一次更新,以确保配置的一致性. Pupp

运维利器rshell,功能强大似Ansible/Puppet/Chef,配置简单如Putty!

#运维利器rshell,功能强大似Ansible/Puppet/Chef,配置简单如Putty! rshell:多Linux主机远程批量执行Shell命令和上传下载文件(跨平台,无依赖,免安装) 源码获取,https://github.com/luckywinds/rshell,喜欢请加星,多谢. ##背景 在多主机运维场景下,最核心最常用的操作就是批量远程执行命令.上传和下载文件,通常大家会想到Ansible.Puppet.Chef等自动化工具,但是又都对工具自身的部署配置抓狂,又对Putty

SSH相关配置

SSH相关配置 1.修改ssh监听端口 #注意是sshd_config而非ssh_config /etc/ssh/sshd_config #将Port 22前面的#去掉并添加修改后ssh连接使用的端口 Port 22 #添加多一个22222端口作为ssh连接使用 Port 22222 #同时将22和22222作为ssh连接端口,是为了防止错误操作致使ssh无法连接上 #待22222连接生效后再将22端口关闭 #重启sshd服务 service sshd restart /etc/init.d/s

java教程(五)SSH框架-配置

前言:从这篇博客开始我将继续讲述Java教程:SSH篇,主要内容围绕SSH框架分析与搭建,今天先简单介绍一下SSH的配置. SSH配置顺序是: spring-->hibernate-->struts 1. 建立web-project ,并添加Spring支持,添加JAR包时注意,aop  core web commons等包要加载,然后一直下一步就可以成功添加spring支持: 2. 添加hibernate支持,同样注意包的选择, 下一步中注意,选择添加到spring中(spring conf

基于注解的SSH将配置精简到极致(1)

很早之前就想写一篇关于SSH整合的博客了,但是一直觉得使用SSH的时候那么多的配置文件,严重破坏了我们代码整体性,比如你要看两个实体的关系还得对照*.hbm.xml文件,要屡清一个Action可能需要对照applicationContext*.xml和struts*.xml文件.总之过多的配置文件坏破坏代码的整体性,会打乱代码的连续性,因为很多情况下你需要一边看Java代码,一边看xml的配置,采用注解就能很好的解决这个问题. 当然,即使采用注解的方式,也不能完全的丢掉配置文件,因为配置文件是程