Обновление ядра centos

Опции

—level levels

Определяет уровень запуска операции которая должна относиться. Она предоставляется в виде строки из чисел от 0 до 7, например, —level 35 указывает запуск службы на уровнях 3 и 5.

—add name

Эта опция добавляет новую услугу для управления по Chkconfig. Когда новая услуга добавляется, Chkconfig гарантирует, что служба start-анула или kill записей в каждом уровне выполнения. Если какой-либо уровень запуска отсутствует такая запись, Chkconfig создает соответствующую запись, как указано значения по умолчанию в сценарий инициализации

Обратите внимание, что записи по умолчанию в LSB-запятыми разделы «INIT Info ‘, имеют приоритет над уровням запуска в сценария,

—del name

Услуга устраняет  с Chkconfig любые символические ссылки в /etc/rc.d, но которые относятся к нему не будут удалены.

—list name

Эта опция перечисляет все услуги которые Chkconfig знает являются ли он остановлен или запущен ​​в каждом runlevel-е. Если имя указано, информация только выведет имя службы.

Чтобы проверить стартует ли в SSH (sshd) автоматически при входе в систему, выполним команду:

# chkconfig --list sshd

sshd 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл

Включим на левел исполнения 3 и 5:

# chkconfig --level 35 httpd on

Проверим что у нас вышло:

# chkconfig --list httpd

httpd 0:выкл 1:выкл 2:выкл 3:вкл 4:выкл 5:вкл 6:выкл

Чтобы выключить службу на уровень 3 и 5 нужно выполнить следующее:

# chkconfig --level 35 httpd off

Чтобы удалить службу нужно выполнить следующее:

# chkconfig --del httpd

Проверим работает ли у нас все, и увидим ошибку с просьбой добавить службу:

# chkconfig --list httpd

Чтобы добавить службу в автозагрузку вашей ОС нужно выполнить следующее:

# chkconfig --add httpd

Тема «автозагрузка сервисов в CentOS» подошла к завершению. Если нашли ошибку, то пожалуйста напишите мне в комментарии.

Примечание

Файл /proc/drbd

В 9 версии нет информации в традиционном файле /proc/drbd

1
2
3
4
5
6
7

cat/proc/drbd

version9.0.16-1(api2/proto86-114)

GIT-hashab9777dfeaf9d619acc9a5201bfcae8103e9529c build by mockbuild@,2018-11-03135424

Transports(api16)tcp(9.0.16-1)

 
 

Информацию можно получить по следующему пути

1
2
3
4

watch cat/sys/kernel/debug/drbd/resources/data/connections/node02//proc_drbd

drbdadm status data

 

Устранение ошибки split-brain

Ошибка может возникать в случае одновременного отключения хостов и даже кратковременной потери соединения. Первое, что необходимо, определить ноду с наиболее актуальными данными (по времени загрузки, по системе мониторинга или каким то иным способом)

На сервере 1 переводим ресурс data  в состояние secondary и подключаем к data с параметром –discard-my-data,

1
2
3
4

drbdadm secondary data

drbdadm—-discard-my-data connect data

 

Если выходит следующее сообщение

1
2
3
4

Failure(125)Device hasanet-config(usedisconnect first)

Command’drbdsetup 0 net 10.10.0.1:7789 10.10.0.2:7789 C —set-defaults —create-device —allow-two-primaries —discard-my-data’terminated with exit code10

 

Отключаем data и повторяем операцию.

1
2
3
4

drbdadm disconnect data

drbdadm—-discard-my-data connect data

 

На втором сервере запускаем

1
2
3

drbdadm connect data

 

Проверяем состояние, в случае если данные не синхронизированы начнется синхронизация разделов.

1
2
3

drbdadm status data

 

Как работает автозагрузка?

Чтобы понять как работает автозагрузка, сначала нужно вспомнить, что происходит во время процесса загрузки Linux. Как только ядро завершит свою инициализацию и будет готово к дальнейшей работе, оно передаст управление системе инициализации. Система инициализации — это основной процесс, именно он запускает все другие процессы в системе.

Есть процессы, которые система инициализации, например, systemd, запускает по умолчанию, но также вы можете настроить чтобы она запускала нужные вам процессы. Также многими дочерними процессами выполняются файлы скриптов или имеется та или иная возможность запускать необходимые вам программы. Такая возможность есть и у большинства окружений рабочего стола.

Рассмотрим основные уровни автозагрузки которые вы можете использовать:

  • Автозагрузка на уровне ядра — вы можете указать любую программу, которая будет запускаться после старта ядра вместо системы инициализации;
  • Автозагрузка системы инициализации — запуск основных системных сервисов, дополнительных сервисов, а также ваших скриптов на этапе инициализации системы;
  • Автозагрузка rc.local — устаревший метод загрузки скриптов, выполняется перед запуском графического окружения;
  • Автозагрузка менеджера входа — вы можете выполнять свои скрипты или команды после запуска менеджера входа, но перед запуском окружения;
  • Автозагрузка X сервера — запуск нужных программ или скрпитов сразу после старта X сервера;
  • Автозагрузка окружения — большинство окружений поддерживают автозагрузку программ, там даже можно настроить отложенный запуск и другие параметры;
  • Автозагрузка bash — самый последний вариант — это автозагрузка на уровне отдельной командной оболочки, вы можете выполнять нужные команды автоматически, как только будет запущен терминал.

Дальше мы рассмотрим более подробно как использовать каждый из пунктов для автозагрузки программ, скриптов или выполнения команд в Linux.

Настройка сети из консоли (командами)

Настройка из консоли будет работать только до перезагрузки системы. Ее удобно применять для временного конфигурирования или проведения тестов.

Назначение IP-адреса или добавление дополнительного к имеющемуся:

ip a add 192.168.0.156/24 dev ens32

* в данном примере к сетевому интерфейсу ens32 будет добавлен IP 192.168.0.156.

Изменение IP-адреса:

ip a change 192.168.0.157/24 dev ens32

* однако, по факту, команда отработает также, как add.

Удаление адреса:

ip a del 192.168.163.157/24 dev ens32

Добавление маршрута по умолчанию:

ip r add default via 192.168.0.1

Добавление статического маршрута:

ip r add 192.168.1.0/24 via 192.168.0.18

Удаление маршрутов:

ip r del default via 192.168.160.1

ip r del 192.168.1.0/24 via 192.168.0.18

Подробнее про управление маршрутами в CentOS.

Установка ядра

Перед обновлением ядра, необходимо обновить саму систему:

yum update

После стоит перезагрузить систему:

shutdown -r now

Далее у нас на выбор два способа обновления ядра — с использованием репозитория или вручную, скачав исходник с kernel.org.

С помощью yum

Самый быстрый и безопасный способ обновить ядро CentOS — воспользоваться автоматической установкой из репозитория. Минусом тут является то, что можно установить только ту версию, которая имеется в наличие в данном репозитории.

Последняя версии ядра для CentOS находится в репозитории ELRepo (не путать с EPEL). Сначала устанавливаем его.

Переходим на веб-страницу elrepo.org и копируем ссылку на последнюю версию репозитория для нашей версии операционной системы, например:

Импортируем ключ репозитория:

rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Воспользовавшись ссылкой, устанавливаем сам репозиторий:

yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

* список установленных репозиториев можно посмотреть командой yum repolist.

Теперь можно установить ядро:

yum —enablerepo=elrepo-kernel install kernel-ml

Ручное обновление

Чаще всего, администратор пользуется встроенными в сборку Linux инструментами (как описано выше) — это безопаснее и проще. Однако, если нужной версии ядра нет в репозитории или мы хотим установить тестовую версию, необходима ручная установка.

Ручная установка неадаптированного для определенной сборки Linux ядра — потенциальный риск для системы. Обновление стоит проводить сначала в тестовой среде, а также выполнить резервное копирование всех важных данных.

Для начала переходим на сайт kernel.org и копируем ссылку на нужную версию ядра Linux:

* в данном примере мы скопировали ссылку на нестабильную версию ядра 5.0.

Воспользовавшись ссылкой, скачиваем ядро на компьютер с Linux:

wget https://git.kernel.org/torvalds/t/linux-5.0-rc8.tar.gz

* если система вернет ошибку, нужно установить wget — yum install wget.

Распаковываем скачанный архив:

tar -xvf linux-5.0-rc8.tar.gz -C /usr/src

* в данном примере мы распаковываем архив linux-5.0-rc8.tar.gz в каталог /usr/src.

Переходим в каталог, куда распаковали исходник ядра:

cd /usr/src/linux-5.0-rc8/

Устанавливаем инструменты для компиляции пакетов:

yum groupinstall «Development Tools»

yum install ncurses-devel openssl-devel bc

Создаем свою конфигурацию для ядра:

make menuconfig

Или используем текущую конфигурацию для ядра:

make oldconfig

На все вопросы, которые задает система можно отвечать нажатием Enter, чтобы принимать значения по умолчанию.

Компилируем ядро:

make

* процедура может занять много времени.

После устанавливаем ядро и модули:

make modules_install install

Автозагрузка в CentOS

Продолжая разборки с CentOS пришел к тому что возникла необходимость засунуть движок сервис-деска в автозагрузку, чтобы он поднимался автоматом при старте системы.

Собственно в CentOS процесс загрузки работает по принципу System V и расписан в файле  /etc/inittab, точнее расписано то как процесс INIT отрабатывает уровни загрузки. В системе фалы загрузки находятся в каталоге /etc/rc.d и носят названия rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, и rc6.d. Пользователи могут размещать файлы в этих каталогах которые будут контролировать запуск сервисов в системе.В свою очередь эти фалы линкуются на каталог /etc/rc.d/init.d и содержащиеся в них скрипты запуска процессов. В этой связи для запуска сервиса необходимо создать полноценный файл запуска сервиса в /etc/init.d, после чего задать символический линк на него из папки соответствующей тому уровню запуска, на котором необходимо стартовать данный сервис. Файлик запуска сервиса будет выглядеть следующим образом, хотя можно расписать все  пару строк просто строкой запуска сервиса:

#!/bin/bash
#
# chkconfig: 35 90 12
# description: Foo server
#

# Get function from functions library
. /etc/init.d/functions

# Start the service FOO
start() {
initlog -c “echo -n Starting FOO server: ”
/path/to/FOO &
### Create the lock file ###
touch /var/lock/subsys/FOO
success $”FOO server startup”
echo
}

# Restart the service FOO
stop() {
initlog -c “echo -n Stopping FOO server: ”
killproc FOO
### Now, delete the lock file ###
rm -f /var/lock/subsys/FOO
echo
}

### main logic ###
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
status FOO
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart|reload|status}”
exit 1
esac

exit 0

Если нет желания заморачиваться с написанием скрипта, то можно добавить строку инициализации запуска сервиса в файл /etc/rc.local. Это файл будет отработан в самом конце загрузки системы, но перед выдачей меню логина.

Для добавления сервисов находящихся в попдапках rc0.d – rc6.d в автозагрузку в системе есть специальная утилита chkconfig, с помощью которой можно добавлять или исключать сервисы.

# chkconfig -l service_name # просмотреть уровни автозагрузки сервиса# chkconfig  –level 34 service_name on|off|reset # вкключить или выключить сервис на 3 и 4 уровнях# chkconfig  –del service_ name # удалить службу# chkconfig  service_name on|off # включить или выключить службу на всех уровнях
ну и есессно главная команда:# man chkconfig

Помимо этого можно воспользоваться утилитой ntsysv , для редактирования всех уровней или задач редактирования для определенного уровня:# ntsysv –level 34

VN:F

please wait…

Rating: 9.2/10 (9 votes cast)

VN:F

Rating: +3 (from 3 votes)

Автозагрузка в CentOS, 9.2 out of 10 based on 9 ratings

3: Создание центра сертификации

Прежде чем вы сможете создать закрытый ключ и сертификат ЦС, вам нужно создать файл по имени vars и заполнить его некоторыми значениями по умолчанию. Перейдите в каталог easy-rsa, затем создайте и отредактируете файл vars с помощью текстового редактора.

Текстовым редактором по умолчанию для системы CentOS 8 является vi. Это очень мощный, но не самый простой в обращении редактор. Если хотите, можете установить nano, он проще. Для этого введите команду:

Чтобы подтвердить установку, нажмите у. теперь вы можете отредактировать файл vars.

Вставьте в файл такие строки и отредактируйте все значения, чтобы задать информацию о вашей организации

Здесь важно убедиться, что вы не оставили пустых значений:. Когда вы закончите, сохраните и закройте файл

В nano для этого нужно нажать Ctrl + X, затем Y и Enter. Теперь вы готовы собрать свой ЦС

Когда вы закончите, сохраните и закройте файл. В nano для этого нужно нажать Ctrl + X, затем Y и Enter. Теперь вы готовы собрать свой ЦС.

Чтобы создать пару открытого и закрытого ключей для вашего центра сертификации, снова введите команду ./easy-rsa, но на этот раз с параметром build-ca:

В выводе вы увидите несколько строк о версии OpenSSL. Также вам будет предложено ввести парольную фразу для вашей пары ключей. Обязательно выберите сложную фразу и сохраните ее в безопасном месте (или запомните). Эту фразу вам нужно ввести, чтобы получить доступ к своему ЦС (например, для подписи или отзыва сертификата).

Также вам будет предложено подтвердить Common Name (CN) для вашего ЦС. Common Name – это имя, используемое для обозначения этого компьютера в контексте центра сертификации. Вы можете ввести любую строку символов, но проще всего принять имя по умолчанию, нажав Enter.

Примечание: Если вы не хотите, чтобы при каждом взаимодействии с вашим ЦС запрашивался пароль, вы можете запустить команду build-ca с параметром nopass:

Теперь у вас есть два важных файла – ~/easy-rsa/pki/ca.crt и ~/easy-rsa/pki/private/ca.key – открытый и закрытый компонент центра сертификации.

  • ca.crt – открытый файл сертификата ЦС. Пользователи, серверы и клиенты будут использовать его для проверки того, что они являются частью одной сети доверия. Каждый пользователь и сервер, который обращается к вашему ЦС, должен иметь копию этого файла. Все стороны будут полагаться на открытый сертификат, чтобы посторонние не могли выдавать себя за вашу систему (это предотвратит атаки посредника).
  • ca.key – это закрытый ключ, который ЦС использует для подписи сертификатов серверов и клиентов. Если злоумышленник получит доступ к вашему ЦС и, в свою очередь, к вашему файлу ca.key, вам нужно будет уничтожить ваш ЦС. И поэтому ваш файл ca.key должен находиться только на вашем компьютере ЦС (в идеале компьютер ЦС должен оставаться в оффлайн, если вы не подписываете запросы на сертификат в качестве дополнительной меры безопасности).

После этого ваш центр сертификации будет готов. Его можно использовать для подписи запросов и для отзыва сертификатов.

Автозапуска скриптов и сервисов с помощью rc.local

Для запуска различных скриптов при загрузке Linux чаще всего используется rc.local.

Но помимо скриптов, через rc.local так же можно и запускать сервисы, даже те, которые запускаются через systemd. Не могу ответить на вопрос, для чего использовать в таком случае rc.local, если есть systemd, но пару примеров я приведу.

Начнем с того, что файл /etc/rc.local должен быть исполняемым:

Rc.local должен быть добавлен в автозагрузку systemd:

И на примере того же nginx, мы можем добавить в rc.local команду запуска веб-сервера:

Но я редко использую rc.local для запуска сервисов. Чаще rc.local используется, когда нужно запустить скрипт, либо выполнить разово какую-то команду.

К примеру, я создал скрипт /root/test.sh который выполняет некоторые действия, и хочу запустить его сразу после запуска системы. Добавляем в файл rc.local строку:

Начиная с CentOS 7, разработчики указывают на то, что rc.local устаревший демон и осуществлять автозапуск скриптов или сервисов через него, это прошлый век. Но пока он работает, я пользуюсь им, так как он очень прост в эксплуатации.

Публикация общей папки

Для удобства установим Samba и добавим в автозагрузку:

yum -y install samba samba-client samba-common
systemctl enable smb
systemctl enable nmb

Далее создадим папку, к которую дадим общий доступ и настроим Samba:

sudo mkdir -p /home/public
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
mcedit /etc/samba/smb.conf

Настроим Samba внеся в smb.conf следующий текст:

Добавляем Samba в автозагрузку:

systemctl enable smb
systemctl enable nmb

Если не отключать Firewall, то нужно добавить следующие правила:

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

Опубликуем папку:

Автозагрузка сервисов в CentOS

Очень полезно добавлять различные сервисы в автозагрузку вашей системы для того чтобы не стартавать их вручную после того как загрузилась ОС. В этой теме пойдет речь о том как добавить, посмотреть сервисы в автозагрузку.

Чтобы добавить сервис в автозагрузку вашей операционной системы которая базируется на CentOS/RHEL /Fedora, служит служба chkconfig. Она очень проста в обслуживании и довольно проста. Синтаксис этой службы будет выглядеть так:

  • chkconfig —list <имя_вашей_службы>
  • chkconfig —add <имя_вашей_службы>
  • chkconfig —del <имя_вашей_службы>
  • chkconfig <имя_вашей_службы> <on|off|reset>
  • chkconfig <имя_вашей_службы>

Автозапуск через cron

Если вам с какой-то периодичностью нужно запускать скрипт или команду, вы можете воспользоваться cron-ом:

— открыть терминал для написания задания cron

И добавьте туда нужное вам задание, например:

— запускать скрипт каждую минуту.

Можно написать скрипт watch-dog, который по заданию будет проверять, например, статус какого-либо сервиса и, если он не работает, запускать его. На нескольких своих проектах я использую подобную схему.

Чтобы вывести список всех заданий в крон, нужно выполнить команду:

* * * * * /root/test.sh

Допустимые значения для времени запуска заданий cron по порядку:

  • Минуты от 0 до 59
  • Часы от 0 до 59
  • День месяца от 1 до 31
  • Месяц от 1 до 12
  • День недели от 0 до 7 (0 или 7 это воскресение)

В нашем задании скрипт запускается каждую минуту, поэтому там стоят «*».

Так же вы можете разместить нужный вам скрипт в директориях cron:

  • /cron.daily – выполнение скрипта ежедневно
  • /cron.hourly – выполнение скрипта ежечасно
  • /cron.monthly — выполнение скрипта ежемесячно
  • /cron.weekly — выполнение скрипта еженедельно

Скрипты в указанных директория будут запускаться согласно автоматически подготовленного расписания.

Настройка сетевого интерфейса сервера

Сервер 1С:Предприятие будет находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.
Отключаем firewalld:

systemctl stop firewalld
systemctl disable firewalld

В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:

mcedit /etc/hosts

127.0.0.1 localhost

192.168.xxx.yyy SERVER_NAME.DOMAIN.LOCAL SERVER_NAME

Что бы новые параметры вступили в силу нужно перезагрузить сервер.

reboot

После перезагрузки имя сервера должно разрешаться в IP-адрес.

.bashrc: автозапуск скриптов при запуске терминала

Если вам требуется выполнять какие-то действия при запуске терминала ssh, вы можете добавить любую команду или выполнение скрипта в .bash_profile или .bashrc. Теоретически, вы можете добавить какое-либо действие в любой из этих файлов, оно выполнится в любом случае. Обычно все необходимое добавляется в .bashrc, а сам .bashrc запускают из .bash_profile.

Я добавил в файл .bashrc команду на рестарт веб-сервиса nginx:

После этого сохранил файл и перезапустил терминал:

Как видите, при запуске терминала, веб-сервер был перезапущен. Какие действия можно выполнять при запуске терминала? Вероятно, запускать какие-то вспомогательные утилиты, например, проверка сервера:

Или вы хотите, чтобы при запуске терминала, вы сразу попадали в нужную вам директорию и запускали mc, добавьте в .bashrc

Надеюсь эта статья по управлению автозапуском сервисов и скриптов в LInux (статья писалась для CentOS) оказалась полезной для вас. Наверняка тем, кто только познает азы системного администрирования Linux, это информация будет кстати.

Настройка загрузчика Grub

Для того чтобы новое ядро загружалось автоматически, необходимо поменять несколько параметров запуска дистрибутива в загрузчике Grub. Откройте конфигурационный файл /etc/defaul/grub и измените значение переменной GRUB_DEFAULT на 0:

Это означает, что по умолчанию будет использоваться первое ядро , которое находится в списке Grub. А первым обычно размещается именно самое новое. Чтобы обновить конфигурацию выполните команду:

Осталось еще раз перезагрузиться чтобы убедиться, что теперь все по умолчанию выбирается нужное ядро. Теперь готово, обновление ядра CentOS 7 до самой новой версии завершено.

Автозагрузка скриптов в Linux

Раньше было принято размещать все скрипты, которые запускаются по умолчанию в файле /etc/rc.local. Этот файл все еще существует, но это пережиток системы инициализации SysVinit и теперь он сохраняется только для совместимости. Скрипты же нужно загружать только с помощью Systemd.

Для этого достаточно создать простой юнит-файл и добавить его в автозагрузку, как любой другой сервис. Сначала создадим этот файл:

В секции Unit мы даем краткое описание нашему файлу и говорим с помощью опции After, что нужно запускать этот скрипт в многопользовательском режиме (multi-user). Секция Service самая важная, здесь мы указываем тип сервиса — idle, это значит, что нужно просто запустить и забыть, вести наблюдение нет необходимости, а затем в параметре ExecStart указываем полный путь к нашему скрипту.

Осталось выставить правильные права:

Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт:

После следующей перезагрузки этот скрипт будет запущен автоматически

Обратите внимание, что для каждого скрипта, который вы собираетесь запускать должны быть правильно выставлены права, а именно нужно установить флаг выполнения. Для этого используйте команду chmod:

В параметрах мы передаем утилите адрес файла скрипта. Исполняемость — это обязательный параметр для всех способов.

Возможные ошибки

Например: 

Причина: в системе не установлен один из пакетов, содержащий необходимые библиотеки.

Решение: необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.

2.  Ошибка 127

Например: [include/generated/timeconst.h] Ошибка 127

Причина: как и с предыдущей ошибкой, в системе не установлен один из пакетов, содержащий необходимые библиотеки.

Решение: аналогично предыдущему примеру решения проблемы, необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.

Обновление ядра CentOS

В большинстве дистрибутивов, и в том числе в CentOS предусмотрено обновление пакетов с помощью встроенного пакетного менеджера, например, yum или apt. Но тем не менее, такой способ позволяет обновить ядро CentOS только до последней версии, которая есть в репозитории. Естественно, что там еще нет самой свежей версии, которая есть на kernel.org.

В CentOS можно использовать репозиторий ELRepo, с помощью него можно выполнить обновление ядра CentOS 7 до самой новой версии. Сначала нужно подключить репозиторий к системе:

После того как репозиторий был подключен, можно посмотреть какая версия ядра там доступна. Для этого используйте такую команду:

И так, сейчас мы видим, что доступна версия 4.10.8, а это самая новая стабильная версия, исходники которой есть на kernel.org. Дальше осталось установить версию ядра из этого репозитория:

После завершения перезагрузите компьютер что активировать самую последнюю версию ядра, которая только что была установлена. Затем вы можете убедиться в том, что была установлена именно эта версия с помощью команды:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: