В предыдущей статье описывал базовую настройку CentOS 7, пришло время автоматизировать данный процесс.
Для этого был создан cookbook с recipes для базовой настройки CentOS 7.
Cookbook доступен на github.
Немного подробней о том что в нем есть:
Окружение
- ОС: CentOS 7
- Cookbook: firewalld, postfix
Параметры
Для настройки используется файл с параметрами.
default['aliases']['root_email'] = 'root@exz.su' # почтовый адрес пользователя root default['selinux']['node'] = 'permissive' # режим работы selinux default['sshd']['port'] = '40022' # порт ssh default['postfix']['myhostname'] = 'se001.exz.su' # имя сервера default['postfix']['relayhost'] = 'smtp.yandex.ru' # smtp relay default['postfix']['relay_email'] = 'support@exz.su' # email для relay default['postfix']['relay_email_password'] = '' # пароль от email default['postfix']['generic_user_root'] = 'root' # кому разрешено использовать smtp relay
Рецепты
- selinux — содержит шаблон для настроек selinux
- firewalld — включает firewalld, разрешает подключения к ssh
- sshd — настройки ssh с не стандартным портом
- fail2ban — установка и настройка fail2ban для защиты ssh от перебора
- postfix — настройки postfix
- aliases — настройка alias для пользователя root
- yum-cron — установка yum-cront и настройка уведомлений об доступных обновлениях
Использование
Chef solo
Установка RVM и Ruby
# curl -sSL https://rvm.io/mpapis.asc | gpg --import - # curl -L get.rvm.io | bash -s stable # source /etc/profile.d/rvm.sh # rvm reload # rvm requirements run # rvm install 2.4.0 # rvm use 2.4.0 --default
Установка Chef при помощи gem
# gem install chef # gem install --no-rdoc --no-ri berkshelf
Запуск chef-solo
mkdir /tmp/chef-solo cd /tmp/chef-solo git clone https://github.com/mr-exz/chef_centos7_base.git cd ./chef_centos7_base/ berks vendor cookbooks chef-solo -c solo/solo.rb -j solo/centos7_base.json
Замечания
- Многие провайдеры блокируют отправку писем через relay