


Centralized configuration management of puppet under Redhat_PHP tutorial
Puppet centralized configuration management under Redhat
An introduction to puppetPuppet is a configuration management tool. Typically, puppet is a C/S structure. Of course, there can be many C here ,Therefore
, it can also be said to be a star structure. All puppet clients communicate with the puppet on the same server. Each
puppet client connects to the server every half hour (can be set) and downloads the latest Configuration file, and configure the server strictly according to the configuration file
. After the configuration is completed, the puppet client can feedback a message to the server. If an error occurs,
will also feedback a message to the server.
Second installation environment
Server side: 172.25.254.2 vm2.example.com puppet master
Client side: 172.25.254.3 vm3.example.com puppet agent
Client side: 172.25.254.4 vm4.example .com puppet agent
Important: Resolution and time synchronization are required between the server and all clients, otherwise the verification will fail.
Server side:
Install these packages first
[root@vm2 puppet]# yum install -y puppet-server-3.8.1-1.el6.noarch.rpm facter-2.4.4 -1.el6.x86_64.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm rubygem-json-1.5.5-3.el6.x86_64. rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm puppet-3.8.1-1.el6.noarch.rpm hiera-1.3.4-1.el6.noarch.rpm
Start the service :[root@vm2 puppet]# /etc/init.d/puppetmaster start
Starting puppetmaster: [ OK ]
Check whether port 8140 is open
[root@vm2 puppet]# netstat -anltp |grep ruby
tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 1118/ruby
Client:
Install these packages: yum install -y puppet-3.8.1-1 .el6.noarch.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm facter-2.4.4-1.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas -0.4.1-3.el6.x86_64.rpmrubygems-1.3.7-5.el6.noarch.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm
Initiate authentication:
When the authentication is initiated for the first time, it will show that there is no certificate because the server has not agreed yet

At this time, you can view the user who initiated the authentication request on the server

Signing certificate
Delete certificate
puppet cert clean vm3.example.com

Check on the client whether the authentication is successful
As shown below, the authentication is successful.

Three servers realize automatic authentication
On the server side
vim /etc/puppet/puppet.conf
Add this line under main
[ main]
autosign = true
Create the autosign.conf file in the /etc/puppet directory with the following content:
*.example.com #Indicates that all hosts in the example.com domain are allowed
/etc/init.d/puppetmaster reload
You only need to apply directly on the client to succeed
puppet agent --server vm2.example.com --test

In practice, sometimes the client host name is modified, so the certificate needs to be regenerated:
1) Execute on the server side: puppet cert --clean vm3.example.com #The original client host you want to delete Name
2) Execute on the client side: rm -fr /var/lib/puppet/ssl/*
puppet agent --server=puppet.example.com
The first execution of puppet The code is in /etc/puppet/manifest/site.pp, so this file must exist, and other codes must also be called through this file.
Four server resource definitions:
cd /etc/puppet/manifests
vim site.pp
file {
"/mnt/puppet-3.8.1-1.el6.noarch. rpm": client destination
content => "puppet:///files/puppet-3.8.1-1.el6.noarch.rpm", server source
mode => 600, client Get resource permissions
owner => puppet client gets resource user
}
cd ..
mkdir files
will puppet-3.8.1-1.el6.noarch. The rpm package is placed in this directory
vim /etc/puppet/fileserver.conf
Add the following at the bottom
[files]
path /etc/puppet/files
allow *
Client side verification This picture shows the changes in resources under /mnt
and also verifies the server configuration

Software package and service definition
Continue Edit the site.pp file just now and add the following
package { ##Software package definition
"vsftpd":
ensure => present (install present, uninstall absent)
}
service {##Service definition
"vsftpd":
ensure => running
}
file {
"/etc/vsftpd/vsftpd .conf":
source => "puppet:///files/vsftpd.conf",
mode => 600,
notify => Service[vsftpd] is equivalent to reload
}
and then in the client End test

User creation
Continue to edit the site.pp file and add the following
user { "xp": uid => 900, ##Create user
home => "/home/test",
shell => "/bin/bash",
provider => useradd,
managehome => true,
ensure => present ,
password => westos
}
#exec { "echo westos | passwd --stdin xp": ##Change the password encryption method so that it is encrypted under /etc/shadow The password will be in clear text
#path => "/usr/bin:/usr/sbin:/bin",
#onlyif => "id xp"
#}
Client verification

crontab task
Old rules on the server side, continue to compile the site.pp file
cron { echo:
command => "/bin/echo `/ bin/date` >> /tmp/echo",
user => root,
hour => ['2-4'],
minute => '*/10'
}
The task will be generated in the /var/spool/cron directory of the client
Verified on the client

In short, puppet is a good The management system is an indispensable tool for automated operation and maintenance in the future. You can build an lnmp architecture yourself and install the source code.
I will release it later. I hope everyone can discuss and make progress together.

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Chinese version
Chinese version, very easy to use

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
