Setup MySQL is simple, it becomes more simple and easy via puppet. With puppetlabs-mysql, you can take what was once a complex to manage, streamline into far simpler. Puppetlabs-mysql module, lets you both configure and manage your MySQL installation, plus manage MySQL resources such as users, grants, and databases.
In this post, it will shows you how to easily setup MySQL server using puppet, as well as demonstrate how to quickly deploy a simple MySQL client.
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Setup MySQL using Puppet Configuration management
1. Setup MySQL using
Puppet
Configuration management with puppet
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
2. Who am I?
• Krishna Prajapati, MySQL Engineer at Olindata
http://www.olindata.com/
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
3. Overview
• What is puppet (for those not aware)?
• What is MySQL?
• Puppet Module selection
• Install puppet module
• Deploying MySQL client
• Deploying MySQL Server
• MySQL Management: database, user, grants
• Questions
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
4. What is Puppet and why do we care?
• Configuration management software
- http://www.olindata.com/blog/2014/08/puppet-master-agent-setup
- http://www.olindata.com/blog/2014/09/setup-puppet-master-passenger-and-apache-
centos
• Scales very well (from 1 to 200k+ nodes)
• Multi-platform (windows, *nix, Mac OS, BSD)
• Commercially supported Open Source
• Infrastructure as code
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
5. What is MySQL ?
• MySQL is a relational database management system
(RDBMS)
• Opensource
• Multi-platform (windows, *nix, Mac OS, BSD)
• MySQL Flavours
- Percona
- MariaDB
• Central component of the widely used LAMP
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
6. Puppet Module selection?
1. Puppet forge https://forge.puppetlabs.com/
2. Supported modules.
https://forge.puppetlabs.com/supported
3. Repositories included in Linux Distributions
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
7. Install puppet module
[root@master]# puppet module search mysql
Notice: Searching https://forgeapi.puppetlabs.com ...
NAME DESCRIPTION AUTHOR KEYWORDS
puppetlabs-mysql Mysql module @puppetlabs mysql centos rhel ubuntu
debian
alkivi-mysql Control MySQL server and allow database/user creation @alkivi debian mysql
database
example42-mysql Puppet module for mysql @example42
example42 mysql
.
.
.
devopera-domysqldb MySQL installation and configuration module@devopera ubuntu rhel centos mysqld
mysql
jlondon-surrogate Puppet module to install Surrogate, an xtrabackup script @jlondon
redhat ubuntu debian mysql
[root@master]#
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
8. Install puppet module
[root@master]# puppet module install puppetlabs-mysql
Notice: Preparing to install into /etc/puppet/modules ...
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/modules
└─┬ puppetlabs-mysql (v2.3.1)
└── puppetlabs-stdlib (v4.3.2)
[root@master]#
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
9. MySQL Client
Deploying mysql client is very straight forward.
/etc/puppet/manifests/site.pp
node 'client.olindata.com' {
class { 'mysql::client': }
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
10. MySQL Server
Deploying mysql server is as simple as including mysql server
class.
/etc/puppet/modules/profile/manifests/mysql.pp
class profile::mysql {
class { '::mysql::server':
root_password => 'strongpassword',
override_options => { 'mysqld' => {
'max_connections' => '1024' } }
}
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
11. /etc/puppet/modules/role/manifests/database.pp
class role::database {
include profile::mysql
}
/etc/puppet/manifests/site.pp
node 'client.olindata.com' {
class { 'mysql::client': }
}
node 'server.olindata.com' {
include role::database
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
12. Creating mysql database
• MySQL Server alone is nothing without mysql database.
/etc/puppet/modules/profile/manifests/mysql.pp
mysql::db { 'mydb':
user => 'admin',
password => 'secret',
host => 'client.olindata.com ',
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
13. MySQL User
• We need to configure user and grants, so we are able to
provide permissions to the state of the table.
/etc/puppet/modules/profile/manifests/mysql.pp
mysql_user { 'root@127.0.0.1':
ensure => 'present',
max_connections_per_hour => '100',
max_queries_per_hour => '200',
max_updates_per_hour => '200',
max_user_connections => '80',
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
14. MySQL Grants
• Grants are the privileges, provided to access the
database/tables
/etc/puppet/modules/profile/manifests/mysql.pp
mysql_grant { 'root@localhost/*.*':
ensure => 'present',
options => ['GRANT'],
privileges => ['ALL'],
table => '*.*',
user => 'root@localhost',
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
15. MySQL Flavour Install
• Other mysql flavours like MariaDB, Percona can be installed
with the existing module ‘puppetlabs-mysql’
/etc/puppet/modules/profile/manifests/mysql.pp
class profile::mysql {
class { '::mysql::server':
package_ensure => 'present',
package_name => 'mariadb-server',
}
}
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
16. Upcoming training
• Puppet Fundamentals Training, Barcelona
Monday, November 24, 2014
• Puppet Fundamentals Training, Hyderabad
Monday, November 24, 2014
• Puppet Fundamentals Training, Pune
Monday, December 1, 2014
• Puppet Fundamentals Training, Singapore
Wednesday, December 17, 2014
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
17. Previous Webinars
Managing files with puppet
• by our CEO Walter Heck
• Link: https://www.youtube.com/watch?v=7fjwrOGRnSc
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing
18. We’re hiring!
EU and Asia based
trainers
jobs@olindata.com
OlinData Webinar 2014 -
https://docs.google.com/presentation/d/1lstjM9TXsBBi1ESZivy1ejIaSpVVvkcOmagF
MIbMsBg/edit?usp=sharing