First stab at moving bacula over to ansible.
This commit is contained in:
parent
ac08c88de5
commit
90cc6ce6a5
10 changed files with 1517 additions and 0 deletions
1167
files/bacula/bacula-dir.conf.j2
Normal file
1167
files/bacula/bacula-dir.conf.j2
Normal file
File diff suppressed because it is too large
Load diff
46
files/bacula/bacula-fd.conf.j2
Normal file
46
files/bacula/bacula-fd.conf.j2
Normal file
|
@ -0,0 +1,46 @@
|
|||
#
|
||||
# Default Bacula File Daemon Configuration file
|
||||
#
|
||||
# For Bacula release 2.0.3 (06 March 2007) -- redhat (Zod)
|
||||
#
|
||||
# There is not much to change here except perhaps the
|
||||
# File daemon Name to
|
||||
#
|
||||
|
||||
#
|
||||
# List Directors who are permitted to contact this File daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-dir
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
}
|
||||
|
||||
#
|
||||
# Restricted Director, used by tray-monitor to get the
|
||||
# status of the file daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-mon
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
Monitor = yes
|
||||
}
|
||||
|
||||
#
|
||||
# "Global" File daemon configuration specifications
|
||||
#
|
||||
FileDaemon { # this is me
|
||||
Name = bacula-fd
|
||||
FDport = 9102 # where we listen for the director
|
||||
WorkingDirectory = /var/spool/bacula
|
||||
Pid Directory = /var/run
|
||||
Maximum Concurrent Jobs = 10
|
||||
Heartbeat Interval = 10
|
||||
#Maximum Network Buffer Size = 131072
|
||||
}
|
||||
|
||||
# Send all messages except skipped files back to Director
|
||||
Messages {
|
||||
Name = Standard
|
||||
director = bacula-dir = all, !skipped, !restored
|
||||
}
|
||||
|
104
files/bacula/bacula-sd.conf.j2
Normal file
104
files/bacula/bacula-sd.conf.j2
Normal file
|
@ -0,0 +1,104 @@
|
|||
#
|
||||
# Default Bacula Storage Daemon Configuration file
|
||||
#
|
||||
# For Bacula release 2.0.3 (06 March 2007) -- redhat (Zod)
|
||||
#
|
||||
# You may need to change the name of your tape drive
|
||||
# on the "Archive Device" directive in the Device
|
||||
# resource. If you change the Name and/or the
|
||||
# "Media Type" in the Device resource, please ensure
|
||||
# that dird.conf has corresponding changes.
|
||||
#
|
||||
|
||||
Storage { # definition of myself
|
||||
Name = bacula-sd
|
||||
SDPort = 9103 # Director's port
|
||||
WorkingDirectory = "/var/spool/bacula"
|
||||
Pid Directory = "/var/run"
|
||||
Maximum Concurrent Jobs = 10
|
||||
Heartbeat Interval = 5
|
||||
}
|
||||
|
||||
#
|
||||
# List Directors who are permitted to contact Storage daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-dir
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
}
|
||||
|
||||
#
|
||||
# Restricted Director, used by tray-monitor to get the
|
||||
# status of the storage daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-mon
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
Monitor = yes
|
||||
}
|
||||
|
||||
#
|
||||
# Devices supported by this Storage daemon
|
||||
# To connect, the Director's bacula-dir.conf must have the
|
||||
# same Name and MediaType.
|
||||
#
|
||||
|
||||
Device {
|
||||
Name = FileStorage
|
||||
Media Type = File
|
||||
Archive Device = /bacula/
|
||||
LabelMedia = yes; # lets Bacula label unlabeled media
|
||||
Random Access = Yes;
|
||||
AutomaticMount = yes; # when device opened, read it
|
||||
RemovableMedia = no;
|
||||
AlwaysOpen = no;
|
||||
}
|
||||
|
||||
|
||||
Device {
|
||||
Name = FileStorage2
|
||||
Media Type = File
|
||||
Archive Device = /bacula2/
|
||||
LabelMedia = yes; # lets Bacula label unlabeled media
|
||||
Random Access = Yes;
|
||||
AutomaticMount = yes; # when device opened, read it
|
||||
RemovableMedia = no;
|
||||
AlwaysOpen = no;
|
||||
}
|
||||
|
||||
#
|
||||
# An autochanger device with two drives
|
||||
|
||||
Autochanger {
|
||||
Name = Autochanger
|
||||
Device = Drive-1
|
||||
Changer Command = "/usr/libexec/bacula/mtx-changer %c %o %S %a %d"
|
||||
Changer Device = /dev/sg1
|
||||
}
|
||||
|
||||
Device {
|
||||
Name = Drive-1 #
|
||||
Drive Index = 0
|
||||
Media Type = LTO-5
|
||||
Archive Device = /dev/nst0
|
||||
AutomaticMount = yes; # when device opened, read it
|
||||
AlwaysOpen = yes;
|
||||
RemovableMedia = yes;
|
||||
RandomAccess = no;
|
||||
AutoChanger = yes
|
||||
SpoolDirectory = /bacula/bacula/spool/;
|
||||
Maximum Spool Size = 1600G;
|
||||
# Label Media = yes
|
||||
# Enable the Alert command only if you have the mtx package loaded
|
||||
Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
|
||||
# If you have smartctl, enable this, it has more info than tapeinfo
|
||||
Alert Command = "sh -c 'smartctl -H -l error %c'"
|
||||
}
|
||||
#
|
||||
# Send all messages to the Director,
|
||||
# mount messages also are sent to the email address
|
||||
#
|
||||
Messages {
|
||||
Name = Standard
|
||||
director = bacula-dir = all
|
||||
}
|
10
files/bacula/bconsole.conf.j2
Normal file
10
files/bacula/bconsole.conf.j2
Normal file
|
@ -0,0 +1,10 @@
|
|||
#
|
||||
# Bacula User Agent (or Console) Configuration File
|
||||
#
|
||||
|
||||
Director {
|
||||
Name = bacula-dir
|
||||
DIRport = 9101
|
||||
address = localhost
|
||||
Password = "{{ bacula5PasswordCon }}"
|
||||
}
|
5
files/bacula/fedora_delete_catalog_backup
Executable file
5
files/bacula/fedora_delete_catalog_backup
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This script deletes a catalog dump
|
||||
#
|
||||
rm -f /bacula/bacula.sql
|
3
files/bacula/fedora_make_catalog_backup
Executable file
3
files/bacula/fedora_make_catalog_backup
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
rm -f /bacula/bacula.sql
|
||||
/usr/bin/mysqldump -u bacula -f bacula > /bacula/bacula.sql
|
74
files/mysql/my.cnf
Normal file
74
files/mysql/my.cnf
Normal file
|
@ -0,0 +1,74 @@
|
|||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
user=mysql
|
||||
# Default to using old password format for compatibility with mysql 3.x
|
||||
# clients (those using the mysqlclient10 compatibility package).
|
||||
old_passwords=1
|
||||
max_connections=900
|
||||
query_cache_size=64M
|
||||
query_cache_limit=2M
|
||||
ft_min_word_len=3
|
||||
|
||||
log-slow-queries=/var/log/mysqld/slow-queries.log
|
||||
long_query_time = 2
|
||||
general_log = 1
|
||||
general_log_file = /var/log/mysqld/mysql-transfer.log
|
||||
|
||||
skip-locking
|
||||
key_buffer = 384M
|
||||
key_buffer_size=64M
|
||||
max_allowed_packet = 16M
|
||||
table_cache = 2048
|
||||
sort_buffer_size = 8M
|
||||
join_buffer_size = 8M
|
||||
read_buffer_size = 2M
|
||||
read_rnd_buffer_size = 16M
|
||||
bulk_insert_buffer_size = 64M
|
||||
myisam_sort_buffer_size = 128M
|
||||
myisam_max_sort_file_size=15G
|
||||
myisam_max_extra_sort_file_size = 10G
|
||||
thread_cache_size = 8
|
||||
# Try number of CPU's*2 for thread_concurrency
|
||||
thread_concurrency = 16
|
||||
thread_stack = 192K
|
||||
|
||||
transaction_isolation = REPEATABLE-READ
|
||||
|
||||
back_log = 50
|
||||
binlog_cache_size = 1M
|
||||
max_heap_table_size = 128M
|
||||
|
||||
tmp_table_size = 128M
|
||||
|
||||
innodb_additional_mem_pool_size = 16M
|
||||
innodb_buffer_pool_size = 4G
|
||||
innodb_file_io_threads = 4
|
||||
innodb_thread_concurrency = 16
|
||||
innodb_flush_log_at_trx_commit = 1
|
||||
innodb_log_buffer_size = 8M
|
||||
#innodb_log_file_size = 2G
|
||||
#innodb_log_files_in_group = 3
|
||||
innodb_max_dirty_pages_pct = 90
|
||||
|
||||
|
||||
[mysqld_safe]
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
open-files-limit = 8192
|
||||
|
||||
[isamchk]
|
||||
key_buffer = 512M
|
||||
sort_buffer_size = 512M
|
||||
read_buffer = 8M
|
||||
write_buffer = 8M
|
||||
|
||||
[myisamchk]
|
||||
key_buffer = 512M
|
||||
sort_buffer_size = 512M
|
||||
read_buffer = 8M
|
||||
write_buffer = 8M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
|
32
playbooks/groups/backup-server.yml
Normal file
32
playbooks/groups/backup-server.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
# create a new backup server system
|
||||
# NOTE: should be used with --limit most of the time
|
||||
# NOTE: make sure there is room/space for this instance on the buildvmhost
|
||||
# NOTE: most of these vars come from group_vars/backup_server or from hostvars
|
||||
|
||||
- name: make backup server system
|
||||
hosts: backup-server
|
||||
user: root
|
||||
gather_facts: False
|
||||
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- ${private}/vars.yml
|
||||
- ${vars}/${ansible_distribution}.yml
|
||||
|
||||
tasks:
|
||||
tasks:
|
||||
- include: $tasks/hosts.yml
|
||||
- include: $tasks/yumrepos.yml
|
||||
- include: $tasks/base.yml
|
||||
- include: $tasks/fas_client.yml
|
||||
- include: $tasks/2fa_client.yml
|
||||
- include: $tasks/motd.yml
|
||||
- include: $tasks/sudo.yml
|
||||
- include: $tasks/rkhunter.yml
|
||||
- include: $tasks/denyhosts.yml
|
||||
- include: $tasks/nagios_client.yml
|
||||
- include: $tasks/mysql_server.yml
|
||||
- include: $tasks/bacula_server.yml
|
||||
|
||||
handlers:
|
||||
- include: $handlers/restart_services.yml
|
58
tasks/bacula_server.yml
Normal file
58
tasks/bacula_server.yml
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
# tasklist for setting up the backup server.
|
||||
- name: install bacula
|
||||
yum: pkg=$item state=installed
|
||||
with_items:
|
||||
- bacula-director-mysql
|
||||
- bacula-sd
|
||||
- bacula-storage-mysql
|
||||
- bacula-console
|
||||
- bacula-client
|
||||
- mysql-server
|
||||
- mtx
|
||||
tags:
|
||||
- packages
|
||||
|
||||
# install bacula config files.
|
||||
- name: install bacula storage director configs
|
||||
template: src=$files/bacula/bacula-sd.conf.j2 dest=/etc/bacula/bacula-sd.conf mode=640
|
||||
notify:
|
||||
- restart bacula-sd
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: install bacula director configs
|
||||
template: src=$files/bacula/bacula-dir.conf.j2 dest=/etc/bacula/bacula-dir.conf mode=640
|
||||
notify:
|
||||
- restart bacula-dir
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: install bacula file configs
|
||||
template: src=$files/bacula/bacula-fd.conf.j2 dest=/etc/bacula/bacula-fd.conf mode=640
|
||||
notify:
|
||||
- restart bacula-fd
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: install bacula console config
|
||||
template: src=$files/bacula/bconsole.conf.j2 dest=/etc/bacula/bconsole.conf mode=640
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: install bacula scripts
|
||||
copy: src=$files/bacula/$item dest=/usr/local/bin/$item mode=0755
|
||||
with_items:
|
||||
- fedora_make_catalog_backup
|
||||
- fedora_delete_catalog_backup
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: enable bacula-sd service
|
||||
service: name=bacula-sd state=started enabled=yes
|
||||
|
||||
- name: enable bacula-dir service
|
||||
service: name=bacula-dir state=started enabled=yes
|
||||
|
||||
- name: enable bacula-fd service
|
||||
service: name=bacula-fd state=started enabled=yes
|
18
tasks/mysql_server.yml
Normal file
18
tasks/mysql_server.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
#
|
||||
# Setup mysql server.
|
||||
#
|
||||
- name: install mysql server packages
|
||||
yum: name=$item state=installed
|
||||
with_items:
|
||||
- mysql-server
|
||||
tags:
|
||||
- packages
|
||||
|
||||
- name: install our my.cnf
|
||||
copy: src=$files/mysql/my.cnf dest=/etc/my.cnf owner=root group=root mode=0644
|
||||
|
||||
- name: Set mysql-server to run
|
||||
service: name=mysqld enabled=yes state=running
|
||||
tags:
|
||||
- service
|
Loading…
Add table
Add a link
Reference in a new issue