puppet自动化搭建

一:基础讲解

Ntp,DNS需要

源码先安装ruby,facter,puppet

Cd puppet-XXX

Ruby install.rb

二:环境搭建

1、服务端master

A、yum配置

环境自带源

rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm

yum install puppet-server -y

B、 hosts配置

vi /etc/hosts

172.17.0.2      master.domain.com master

172.17.0.3      slave.domain.com slave

C、puppet文件配置

rm -rf  /etc/puppet/puppet.conf

puppet master --genconfig  >> /etc/puppet/puppet.conf

grep -v "^$\|#" /etc/puppet/puppet.conf

62 #    manifestdir = /etc/puppet/manifests

63 #    manifest = /etc/puppet/manifests/site.pp

64 #    masterlog = /var/lib/puppet/log/puppetmaster.log

69 #    modulepath = /etc/puppet/modules:/usr/share/puppet/modules

107 #    templatedir = /var/lib/puppet/templates

注释掉

vi /etc/puppet/puppet.conf

[master]

certname=master.domain.com//服务端的名字

D、启动服务

systemctl start puppetmaster.service

systemctl enable puppetmaster.service

F、暂时不用

##puppet master --verbose --no-daemonize

--verbose 显示更多的输出项目 
--no-daemonize 前台运行,并将输出重定向至标准输出

2、客户端配置

A、yum配置

rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm

yum install puppet -y

B、hosts配置

vi /etc/hosts

172.17.0.2      master.domain.com master

172.17.0.3      slave.domain.com slave

C、puppet文件配置

[agent]

certname = slave.domain.com

server = master.domain.com#服务器设置

report = true

listen = true#增加监听

runinterval = 10   #设置同步的间隔时间,单位为秒

D、启动服务

systemctl start puppet.service

systemctl enable puppet.service

puppet agent --server master.domain.com --noop --test -d -v   # 模拟测试执行,但不做任何操作实际的操作; 可看到创建证书请求文件。

3、在master上通过验证:

A、手动授权

puppet cert --list //列出请求列表

puppet cert --list --all    //查看所有签发过的证书

puppet cert --sign slave.domain.com //签名证书

puppet cert --sign --all //对所有证书进行签名

puppet cert --revoke slave.puppet.com//证书过期

puppet cert --clean slave.puppet.com//删除证书

rm  -rf /var/lib/puppet/ssl///客户端删除证书

B、自动授权

cat /etc/puppet/autosign.conf <<EOF

> *.domain.com

> EOF

4、测试效果

A、服务端

一定要关闭防火墙和selinux

vim /etc/puppet/manifests/site.pp

file{

"/tmp/test.txt":

content=>"Hello, puppet test!\n",

ensure => present,

mode => 644,

owner => root,

group => root,

}

B、客户端

puppet agent --test

puppet agent      -vt

三:同步

1、同步文件

A、推送/media/hosts 文件,

[[email protected] puppet]# cat /media/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.102 master.jun.com master

192.168.0.101 client.jun.com client

192.168.0.104 client2.jun.com client2

192.168.0.105 client3.jun.com client3

192.168.0.106 client4.jun.com client4

B、在服务器端做以下操作

[[email protected] ~]# vim /etc/puppet/fileserver.conf

[files]

path /media/#同步的目录

allow *

C、site.pp

[[email protected] ~]# vim /etc/puppet/mainfests/site.pp

file

{"/media/hosts":#客户端的目录及文件名

source => "puppet://master.puppet.com/files/hosts",#同步的文件

group => root,#用户组修改

owner => root,#用户修改

mode => "644"#文件权限

}

D、客户端

puppet agent --test

2、同步安装包,启停服务

vim /etc/puppet/manifests/site.pp

A、装包

package {

["ntp","squid","postfix"]:

ensure => "installed";

}

B、服务启停

service {

"httpd":

ensure => running;

"vsftpd":

ensure => stopped;

}

3、执行脚本

先同步文件,再执行

A、cat ../fileserver.conf

[files]

path /media/

allow *

B、cat site.pp

file

{"/tmp/nodes1.sh":

source => "puppet://master.puppet.com/files/nodes1.sh",

group => puppet,

owner => puppet,

mode => "777"

}

exec

{"exec-mkdir":

cwd => "/tmp",

command => "sh /tmp/nodes1.sh",#执行文件

user  => puppet,#执行用户

path => "/usr/loal/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin",

}

4、cron计划任务

A、脚本

cron { "cron-shell":

command => "sh /tmp/test.sh",

user => "puppet",

minute => "27",

hour => "10"

}

cron   { ntpdate:

command => "/usr/sbin/ntpdate 192.168.0.1 && /sbin/clock -w",

user => root,

minute => ‘*/5‘

}

puppetd  agent   -vt

5、创建,删除用户

A、创建不带家目录

user {"wang":

uid => 2000,

gid => 2000,#用户组需要单独创立

home => "/home/wang",#不会生成家目录

shell => "/bin/bash"

}

B、删除用户(不删家目录)

user{"test":

ensure=>"absent",

}

C、创建带家目录用户,自定组

创建组

group{"sa":

ensure=>"present",

gid=>3000,

}

创建用户

user{"test":

ensure=>"present",

managehome=>true,

groups=>sa,

}

6、模块的应用

basemodulepath = /etc/puppet/modules:/usr/share/puppet/modules

如果不在默认文件路径,

方法一修改上面路径

方法二绝对路径导入

A、基础目录

cd /etc/puppet/manifests

cat site.pp

import "nodes.pp"#倒入模块

cat nodes.pp

node "slave.puppet.com" {

include test::test

}

cd /etc/puppet/modules/

mkdir -p test/{manifests,files,templates}

cd test/manifests/

vi init.pp

class test::test {

file {"/tmp/sky":

owner => root,

group => root,

ensure => present,

content => "www.baidu.com test by sky",

mode => 644,

}

}

7、密钥对的应用

A、基础讲解

【puppetsshkey参数】

alias:别名,通俗的可以理解为小名,主机可能具有多个别名。如果有多个话可以用数组表示。

ensure:sshkey的基础属性,指定key是否生成,可以设置的值为present,absent。

key:生成的密钥值,一般是十六进制数字的长字符串。

name:名称,主机名。

provider:经常不需要指定,puppet根据相应的操作系统选择相应的provider.

parsed:为ssh解析和生成已知的host文件。

target:存储的SSH密钥文件的路径。

type:key生成的加密类型,通过是ssh-dsa,或者ssh-rsa,备注,dsa也可以用dss来表示。

user:指定是哪个用户的key。

B、实验

ssh_authorized_key{“hostname”:

ensure=>present,

type=>“ssh-rsa”,

key=>“/root/.ssh/id_rsa.pub生成的密钥值”,

name=>“hostname随意”,

target=>“/home/sky/.ssh/authorized_keys”,

user=>‘sky’,

}

时间: 2024-10-14 20:26:05

puppet自动化搭建的相关文章

52.puppet自动化运维工具

puppet自动化运维工具 Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操作,会通过puppet同步到其他linux服务器的一款强大工具. Puppet使用的端口是8139 搭建puppetmaster: v 规划服务器主机名 # vim /etc/sysconfig/network 修改内容: NETWORKING=yes HOSTNAME=master.test.cn

Puppet master nginx 扩展提升性能(puppet自动化系列4)

puppet使用SSL(https)协议来进行通讯,默认情况下,puppet server端使用基于Ruby的WEBRick HTTP服务器.由于WEBRick HTTP服务器在处理agent端的性能方面并不是很强劲,因此需要扩展puppet,搭建nginx或者其他强劲的web服务器来处理客户的https请求. 需要解决的问题: 扩展传输方式:提高性能并增加Master和agent之间的并发连接数量. 扩展SSL:采用良好的SSL证书管理方法来加密Master和agent之间的通讯. Nginx

使用vue-cli脚手架自动化搭建一个vue项目

最近在学习使用vue,简单汇总下如何使用vue-cli脚手架自动化搭建一个vue项: 1.首先,要安装node.js,之后第一步检测是否安装node:没有安装node的同学请到官网下载安装 https://nodejs.org/en/download/ 安装成功后在命令行查看node版本,如果有说明安装成功. 2.之后全局安装vue-cli脚手架 电脑进入cmd,任意路径下 使用 npm命令:npm install vue-cli -g 注意:npm -v 3.0+   npm版本需要在3.0之

ssh+expect+scp实现服务器集群自动化搭建

之前介绍过ansible的使用,通过ssh授权批量控制服务器集群 但是生成密钥和分发公钥的时候都是需要确认密码的,这一步也是可以自动化的,利用ssh + expect + scp就可以实现,其实只用这几个命令结合也可以实现类似ansible的功能了 为了远程操作服务器进行环境初始化,总结我们都需要以下几步操作 1.ssh-keygen生成密钥对 2.将生成的公钥发送到node服务器 3.scp拷贝安装包到node服务器 4.ssh远程执行拷贝过去的安装包 下面进行集群环境初始化脚本的编写,通过s

Pycharm+Selenium Python 自动化搭建

Pycharm+Selenium  自动化搭建 一,按照博客链接安装: (1)Pycharm+Selenium Python 自动化搭建 (2) 下载chrom对应版本chromdriver http://chromedriver.chromium.org/downloads (3)解压放在python37目录下 二,创建后代码 (1)代码: from selenium import webdriver options = webdriver.ChromeOptions() options.bi

搭建Puppet自动化部署环境

最近项目上线,自己在部署过程中发现很多问题,发现没有自动化部署工具简直就是纯体力活儿,费时又费力,干的事就是那几个,就不能"一键完成么"的想法油然而生,答案是肯定的,自动化的工具有很多,之所以安装Puppet,只是因为比起别的软件,这款软件原来有学习过,现在又重新拾起来,要把它用到生产环境中,让运维工作不再是体力活,而是实现,全自动部署,更新,这篇只是聊聊安装和配置Puppet,后续还会写具体在生产环境中如何实现自动化代码更新,软件部署等,敬请期待~ 环境介绍: puppetserve

puppet补充--搭建lnmp &#160; 以及dashboard,passenger

puppet搭建lnmp server4 #cd /etc/puppet/modules #cp -r httpd nginx #cd files #rm -fr httpd.conf #rm -fr * ../templates 编写puppet执行脚本 nginx-install.sh #touch nginx-install.sh #chmod +x nginx-install.sh 脚本内容如下 #!/bin/bash yum install -y openssl-devel pcre-

Puppet自动化高可用集群部署

前言:随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台puppetmaster响应很慢,压力大,解析缓慢,有什么优化的方案吗?可以使用Puppetmaster配置多端口,结合Nginx web代理,这样puppetmaster承受能力至少可以提升10倍以上. 一.安装配置mongrel服务: 要使用puppet多端口配置,需要指定mongrel类型,默认没有安装,需要安装.在Puppetmaster服务器端执行如下命令(前提是已经安装了对应版本的

Docker中自动化搭建Hadoop2.6完全分布式集群

这一节将在<Dockerfile完成Hadoop2.6的伪分布式搭建>的基础上搭建一个完全分布式的Hadoop集群. 1. 搭建集群中需要用到的文件 [[email protected] hadoop-cluster]# ll total 340648# 用自动化构建集群的脚本 -rwxr-xr-x. 1 root root 2518 Aug 13 01:20 build-cluster.sh# 使用scp 来下载的文件的脚本 -rwxr-xr-x. 1 root root 314 Aug 1