Showing posts with label centos. Show all posts
Showing posts with label centos. Show all posts

Wednesday, 15 February 2023

Конвертация HyperV в VMware.

Всем привет.

Конвертация виртуальной машины Linux (Centos/Redhat) с помощью VMware Сonverter Standalone с HyperV на VMware привносит мелкий сюрприз - первая загрузка новой машины вываливается в черный экран с приглашением dracut.

Для исправления этого надо разово выполнить три действия:

1) после конвертации следует загрузиться в режиме reсovery (обычно это последняя строка в меню загрузчика). Далее в терминале выполнить:

sudo dracut --force --regenerate-all

2) далее следует изменить настройки сетевого интерфейса по пути 

/etc/sysconfig/network-scripts/

Обычно это файлик ifcfg-eth0 где достаточно поменять значение параметра DEVICE. Если такого параметра нет, то добавьте его. Чтобы знать на что менять просто выполните команду ip ad и вы увидите ваш новый интерефейс типа ens192 (или ens160) без IP-адреса. Тогда ваша строка будет как DEVICE=ens192.

Также еcли в файле ifcfg-eth0 есть параметр HWADDR то его тоже следует обновить, это МАС нового интерфейса.

3) пускаем Linux на перезагрузку и уже в нормальном режиме выполняем:

sudo dracut --force

Готово.

Sunday, 25 December 2022

Тестирование инфраструктуры с Testinfra #1.

Всем привет.

Создание модульных тестов для тестирования инфраструктуры - замечательная идея. Главное найти подхоящий инструмент с низким порогом вхождения. Я таких знаю два - это Testinfra  (Python) и Pester (Powershell). Разумеется оба бесплатны, но более простым для старта я считаю первый. Так что сегодня будет Testinfra.

С проектом Testinfra мы можем качественно улучшить наши приложения, которые мы используем в промышленной эксплуатации. Давайте выполним подключение к разным хостам и выполним несколько проверочных тестов.

Пожалуй начнем. Создайте новую виртуальную среду и активируйте ее:

$ python3 -m venv validator

$ source validator/bin/activate

Установите  pytest:

(validator) $ pip3 install pytest

Установите testinfra:

(validator) $ pip3 install pytest-testinfra

Установите paramiko:

(validator) $ pip3 install paramiko

Фикстуры pytest предоставляют всю тестовую функциональность проекта Testinfra.  Чтобы извлечь пользу из этого, вам необходимо правильно указать тип соединения. Поскольку  существуют различные типы соединений прикладных частей, то, если соединение не указано непосредственно, Testinfra использует определенные типы по умолчанию. Лучше указывать тип соединения явным образом в командной строке.

Вот список поддерживаемых Testinfra соединений на сегодня:

-local

$ py.test --sudo test_myinfra.py

-Paramiko (SSH-реализация на Python)

$ py.test --ssh-config=/path/to/ssh_config --hosts=server

-Docker;

$ py.test --hosts='docker://[user@]container_id_or_name'

-SSH;

$ py.test --ssh-config=/path/to/ssh_config --hosts='ssh://server'

-Podman;

$ py.test --hosts='podman://[user@]container_id_or_name'

-Salt;

$ py.test --hosts='salt://*'

-Ansible;

$ py.test --hosts='ansible://all' # tests all inventory hosts

-Kubernetes (через утилиту kubectl);

$ py.test --hosts='kubectl://mypod-a1b2c3'

-OpenShift;

$ py.test --hosts='openshift://mypod-a1b2c3'

-WinRM;

$ py.test --hosts='winrm://vagrant@127.0.0.1:2200?no_ssl=true&no_verify_ssl=true'

-LXC/LXD

$ py.test --hosts='lxc://container_name'

Friday, 4 February 2022

Webmin для ленивого админа.

Всем привет.

Webmin это web панель для администрирования unix сервера. Она кроссплатформенная, ставится на различные unix дистрибутивы. С помощью webmin можно выполнять практически все популярные административные действия на сервере, такие как:

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

Существуют модули для различного софта, которым можно управлять через webmin. Например самбой, или веб сервером, mysql сервером и множеством других пакетов. Список модулей обширный, можно посмотреть на официальном сайте список сторонних пользовательских модулей, или в самой панели после установки список официальных модулей. Через webmin можно получить доступ к консоли сервера, загрузить или скачать файлы с сервера. 

Если вы привыкли настраивать Linux исключительно в консоли то вам Webmin будет как игрушка. Но тем не менее раз он существует, то есть и админы, которые активно им пользуются. Судить по этому насколько они продвинутые в Linux-е админы не берусь ибо главное это результат и время потраченное на его достижение. Остальное это все личные предпочтения в жизни. 

Wednesday, 6 October 2021

Выбор ядра по умолчанию в CentOS.


Всем привет.

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

grubby --default-kernel

Результат:

/boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

Каждое ядро имеющееся в системе имеет свой индекс который можно посмотреть следующим образом:

grubby --default-index

Посмотреть список доступных:

ls -l /boot/vmlinuz-*

Детали по каждому отдельно взятому:

grubby --info /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

index=0

kernel="/boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64"

args="ro net.ifnames=0 biosdevname=0 crashkernel=auto resume=/dev/mapper/cl_centos--8-swap rd.lvm.lv=cl_centos-8/root rd.lvm.lv=cl_centos-8/swap rhgb quiet $tuned_params"

root="/dev/mapper/cl_centos--8-root"

initrd="/boot/initramfs-4.18.0-80.11.2.el8_0.x86_64.img $tuned_initrd"

title="CentOS Linux (4.18.0-80.11.2.el8_0.x86_64) 8 (Core)"

id="a674259de3b90440a00f4c61ff4fde63-4.18.0-80.11.2.el8_0.x86_64"

Выбрать ядро для загрузки можно указав имя файла используя:

grubby --set-default /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

Или можно указать индекс, посмотреть имеющиеся индексы можно так:

grubby --info /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64 | grep index

После чего указать grubby требуемый:

grubby --set-default-index=1 

У меня получилось следующее:


Успехов.

Tuesday, 21 September 2021

Назначить CentOS IP-адрес вручную.

Всем привет.

Мне в наследство упала одна машинка с CentOS на борту. Все бы ей хорошо только вот IP-адрес она не подхватывала по DHCP. И потому стала на некоторое время бесполезна.

Пытаюсь ей помочь. Захожу на консоль и смотрю в

cat /etc/sysconfig/network-scripts/ifcfg-ens18

Для DHCP нахожу следующие строки:

BOOTPROTO=dhcp

ONBOOT=no

Ничего более не трогаю, скорее всего мне будет достаточно ONBOOT исправить на: 

ONBOOT=yes

Но как оказалось никаких текстовых редакторов на старой CentOS не нашлось. Поэтому для установки хотя бы nano пробую назначить IP-адрес вручную:

ifcfg ens18 192.168.1.90/24

Прописываю машрут по умолчанию на основной машрутизатор:

ip route add default via 192.168.1.1

Также указываю машрутизатор в качеcтве DNS-сервера: 

echo nameserver 192.168.1.1 > /etc/resolv.conf

Перезапускаю сетевой сервис, чтобы CentOS приняла новые настройки сети:

service network restart

Отлично. Теперь можно подтянуть и nano и исправить DHCP:

yum install nano

И в конце ребут. Вот теперь готово.

Успехов.

Sunday, 20 December 2020

How is doing patches and installation by Ansible.

Hi all.

How is doing patches and installation by Ansible? Next story by Janathan Lozada De La Matta.

So we’ve learned how to update a system, restart the VM, reconnect, and install a RPM. 

  - name: update the system

    yum:

      name: "*"

      state: latest

In the first line, we give the task a meaningful name so we know what Ansible is doing. In the next line, the yum module updates the CentOS virtual machine (VM), then name: "*" tells yum to update everything, and, finally, state: latest updates to the latest RPM. After updating the system, we need to restart and reconnect:

  - name: restart system to reboot to newest kernel

    shell: "sleep 5 && reboot"

    async: 1

    poll: 0

  - name: wait for 10 seconds

    pause:

      seconds: 10

  - name: wait for the system to reboot

    wait_for_connection:

      connect_timeout: 20

      sleep: 5

      delay: 5

      timeout: 60

  - name: install epel-release

    yum:

      name: epel-release

      state: latest

Monday, 1 June 2020

Grafana и Zabbix.

Всем привет.

Сегодня расскажу вам про Grafana - веб-инструмента для представления данных, связанных со временем, в виде очень красивых графиков и диаграмм. Grafana упоминается чуть ли не с каждой системой мониторинга. В качестве источника данных для Grafana можно использовать как множество различных сложных движков баз данных, включая Graphite, ElasticSearch, InfluxDB, Prometeus, так и более простых, например MySQL. 

Исходя из моего полигона где был развернут Zabbix Appliance, то я расскажу как установить Grafana в Centos 8, а также как настроить её для работы с Zabbix.

Основное назначение Grafana при подключении к Zabbix – строить красивые графики, и при необходимости быстро создавать, компоновать, и масштабировать различные тренды и значения на одном графике, а так же собирать информативные Dashboard из этих графиков.

Итак начнем. Качаем пакет Grafana и устанавливаем его:
wget https://dl.grafana.com/oss/release/grafana-7.0.1-1.x86_64.rpm
sudo yum install grafana-7.0.1-1.x86_64.rpm

Grafana может взаимодействовать с большим количеством различных систем и СУБД через соотвествующие плагины. Чтобы посмотреть, какие плагины существуют для Grafana, надо выполнить команду:
#grafana-cli plugins list-remote

Нам повезло, для Zabbix существует плагин, созданный Александром Зобниным. Ставим и его:
#grafana-cli plugins install alexanderzobnin-zabbix-app

Добавим сервис(сервер) Grafana в автозагрузку:
#sudo systemctl enable grafana-server

И после этого перезапустим сервис Grafana:
#service grafana-server restart

Friday, 27 March 2020

BusyBox - ничего лишнего.

Всем привет. 

Системные администраторы и пользователи Linux-систем, несомненно, привыкли к работе со своей любимой командной оболочкой и к стандартным программным средствам. Но их повсеместное использование не всегда возможно. И тогда на помощь приходит BusyBox – упрощенный shell с набором компактных системных средств.

BusyBox: что это такое и кому это нужно?

Несмотря на безудержный рост графических оболочек и «дружелюбных» интерфейсов, представить себе UNIX без командной строки и основных утилит в наши дни невозможно. Многочисленные интерпретаторы и базовые системные утилиты не стоят на месте, растут и развиваются, что неизбежно ведет и к увеличению их объема. В то же время существуют сферы деятельности, в которых компактность любых приложений по очевидным причинам очень важна, например, во встраиваемых устройствах. Вместе с тем во многих случаях не требуется значительная часть той функциональности, которая присуща базовым утилитам «общего назначения».

Для решения этих проблем еще в середине 90-х Брюсом Перенсом (Bruce Perens) был создан пакет BusyBox. Сейчас проект позиционируется как «швейцарский нож для встраиваемых Linux-систем» и в первую очередь ориентирован на использование в небольших дистрибутивах GNU/Linux. Распространяется под второй версией лицензии GNU GPL.

BusyBox представляет собой единственный исполняемый файл, при запуске которого загружается полноценный командный интерфейс. Как гласит официальная документация BusyBox, для формирования минимальной версии GNU/Linux к этому достаточно добавить лишь ядро ОС и каталоги /etc, /dev.

Wednesday, 23 October 2019

Awk - это больше, чем команда.

Всем привет.

Продолжаем изучать инструменты поиска в Linux.

Наверняка вы слышали про  команду awk. И видели много примеров  с ней. Но awk - это больше, чем команда. Это язык программирования со своими собственными правилами. Вы можете писать на нем скрипты для выполнения сложных операций, либо можете просто использовать из командной строки. Его название составлено из заглавных букв Aho, Weinberger и Kernighan (да, тот самый Brian Kernighan), авторов языка, история которого началась в 1977 году. Если вы учитесь или учились программированию на C, то увидите многие похожие концепции в awk. Вам понадобятся определенные знания командной оболочки Linux и, возможно, базовые навыки написания скриптов, что, впрочем, необязательно, так как мы постараемся изложить материал как можно проще. Большое спасибо Arnold Robbins за его работу над awk.

Для чего нужен awk?

awk - это утилита/язык для извлечения данных. Именно awk являлся источником вдохновения для Larry Wall, когда он создавал Perl. Для выполнения различных практических задач по обработке текста awk часто используется совместно с sed. В зависимости от поставленной задачи вы можете использовать либо awk, либо Perl, хотя это в большей степени зависит от личных предпочтений. Как и sed, awk читает за один раз одну строку, выполняет определенные действия в зависимости от заданных опций, и выводит результат. Одним из самых простых и популярных способов использования awk является выбор столбца из текстового файла или из вывода другой команды. Когда я устанавливал Debian на свою вторую рабочую станцию, я использовал awk для того, чтобы получить список установленных на первой машине, и скормить его aptitude. Я делал это с помощью команды вида:

$ dpkg -l | awk ' {print $2} ' > installed

В настоящее время большинство менеджеров пакетов предоставляют такую возможность, например это можно сделать с помощью команды rpm's -qa, но вывод содержит больше информации, чем мне нужно. Я вижу, что второй столбец вывода dpkg -l содержит названия установленных пакетов, поэтому я использовал вышеприведенную команду, чтобы извлечь только второй столбец.

Friday, 18 October 2019

Команды поиска в Linux.

Всем привет.

Искать надо постоянно. Особенно в Linux. И тогда встает вопрос - чем же искать? Ниже самые популярные инструменты командной строки.

Find - позволяет отыскивать файлы по имени, дате создания или модификации, владельцу (обычно, это создатель файла), объему и даже типу файла по всем каталогам на текущий момент.

Locate. Эта команда сканирует базу данных файлов вашего компьютера, обновляемую раз в сутки. Алгоритм ее работы несколько отличается от алгоритма команды find, поскольку locate возвращает все файлы, в имени или названии каталога которого есть искомая строка.

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

Grep осуществляет поиск заданной строки текста в файлах.

Объединяйте ваши команды с операторами управления.

Вы, вероятно, уже знаете, что в большинстве оболочек вы можете комбинировать команды в одной командной строке с помощью использования точки с запятой (;) между ними. Точка с запятой - это управляющий оператор оболочки, и хотя он предназначен, для того чтобы связывать множественные отдельные команды в единую командную строку, его применение не всегда возможно. Например, предположим, что вы используете точку с запятой для объединения двух команд, в которых выполнение второй команды всецело зависит от успешного окончания первой. Если первая команда не выполняется так, как вы ожидаете, вторая команда все же запускается - и терпит неудачу. Вместо этого, используйте более подходящий оператор управления (некоторые описаны в данной статье). Если ваша оболочка их поддерживает, к ним стоит привыкнуть.

Запуск команды только в том случае, если другая команда возвратила нулевое значение (retcode = 0)

Используйте оператор управления && для объединения двух команд таким образом, что вторая команда будет выполняться, только если первая возвратила нулевое значение. Другими словами, если первая команда выполняется успешно, вторая команда тоже запускается. Если первая команда не выполняется, то вторая команда не запускается совсем. Например:

Листинг 1. Пример хорошего метода работы #3: Объединяйте команды с операторами управления
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar

В этом примере содержимое архива извлекается в каталог ~/tmp/a/b/c, если этот каталог существует. Если каталог не существует, команда tar не запустится и из архива ничего не будет извлечено.

Tuesday, 8 October 2019

Пилотаж в командной строке Linux.

Всем привет.

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

Константин Кондаков решил показать высший пилотаж в командной строке Linux-а. Это не Windows, все кто себя уважают работают исключительно в строке. Вы верите что такое можно набрать без единой подсказки?!

Копирование файлов на другой сервер
for i in `seq 5 9`; do scp -pr -i ~/.ssh/id_dsa user@10.89.18.${i}:/data02/tomcatlogs/test.log.2012-02-21 ./10.89.18.${i}.test-ws.log.2012-02-21; done

Обработчик ошибки выполнения команды
mv -f ${TMP_BUILD}/testApp/App/web.xml ${TMP_BUILD}/coldfusion/WEB-INF || mail -s " Unable to move web.xml from App/WEB-INF to WEB-INF: `date +%D-time:%H:%M` ${TMP_BUILD} " ${EMAIL}

Синхронизация и копирование rsync,scp,tra,cpio,ssh
rsync -CHSalvz --progress --numeric-ids -e  ssh" /sata/vm5GOLD/ root@192.168.20.30:/backup/

Быстрый поиск
find /data/logs/httpd/vlogs/ -name "*.gz" -ctime +180 -exec rm -f {} \;

Конвейер
find . -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n", size,$2);}' | head

История часто используемых команд
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

Поиск и замена
A=`ifconfig -a | grep -2 'eth0:0' | grep inet | awk '{print $2'} | awk -F: '{print $2'}` && sed -i "s/Port 80/Listen $A:80/g" /usr/local/apache/conf/httpd.conf

Права доступа в цифре
ls -l | sed -e 's/--x/1/g' -e 's/-w-/2/g' -e 's/-wx/3/g' -e 's/r--/4/g' -e 's/r-x/5/g' -e 's/rw-/6/g' -e 's/rwx/7/g' -e 's/---/0/g'

Thursday, 16 August 2018

Как роутер Mikrotik прокачивает скилы сетевого инженера.

Всем привет.

По счастливой случайности представилась возможность познакомиться с сетевым роутером MikroTik. MikroTik - одна из всемирно известных компаний, занимающаяся разработкой и внедрения новых технологий в беспроводные компьютерные сети. Основными достижениями MikroTik является их программное обеспечение - RouterOS, а также их знаменитое аппаратное средство - RouterBOARD.

Действительно, роутеры MikroTik позволяют в принципе решить многие сетевые задачи в кампаниях малого и среднего уровня вложив при этом средства на порядок меньшие чем за те же решения от Сisco. Более того, есть крупные кампании которые позволяют себе закрыть дополнительные вопросы сетевого оборудования с помощью MikroTik там где особо не требуется железо другого именитого бренда.

За что такая честь? Думаю что это хвала заслуженная. Вам достаточно глянуть на богатющие возможности идущие прямо из коробки - Mikrotik RouterOS - мечта сисадмина. И все это за ... 22 доллара на примере популярного MikroTik hAP lite classic (RB941-2nD).

Главная фишка Mikrotik это то что устройства компании Mikrotik поставляются с уже установленной операционной системой MikroTik RouterOS™. В зависимости от модели роутера, операционная система доступна пользователю с одним из 4-х подуровней (level 3/level4/level 5/level 6), различающихся между собой по ряду характеристик. При покупке готового оборудования лицензия уже предустановленна. Лицензию можно купить отдельно, в случае, если Вы хотите обновить Ваше оборудование с одного уровня программного обеспечения на другой.

Это значит что любой роутер Mikrotik имеет на борту RouterOS, которая имеет больше или меньше доступных функций. И вам как админу не надо изучать каждый роутер отдельно.


Sunday, 1 April 2018

Тестовый полигон Docker с Zabbix и Jenkins, продолжение.

Всем привет.

Продолжим наши фокусы. Начало здесь.

5. Поднять контейнер с jenkins внутри
docker pull jenkins

Стартуем новый контейнер:
Внимание! В таком старте jenkins захватит консоль ssh. Два пути отсюда, либо с ключом -d демон либо stop/start из другой консоли

docker run --name myjenkins -p 8080:8080 jenkins
-OR-
docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /home/user00:/var/jenkins_home jenkins

Первый вход в frontend jenkins:
http://IP_адрес_хоста:8080
Создаем пользователя для frontend jenkins.

Была проблема  с повторным входом в frontend jenkins.
Решение нашел такое:
Just change the "useSecurity" element to false in the /var/lib/jenkins/config.xml file. 
This way you will be able to login and reset the password if needed.
<useSecurity>false</useSecurity>
Однако после такой правки вход включился анонимный, который так и остался(.

Friday, 30 March 2018

Тестовый полигон Docker с Zabbix и Jenkins.

Всем привет. 

Недавно у меня появилась возможность попробовать руками СI/CD. Мне поручили развернуть полигон Docker+Zabbix+Jenkins. Это было мое тестовое задание.

Вкратце оно звучало так:
1. Развернуть машину на Centos 7.
1.1 Установить базовый софт и обновления.
1.2 Настроить доступ ssh по публичным ключам
2. Установить и настроить запуск docker
3. Поднять докер контейнер с zabbix внутри
4. Настроить zabbix на мониторинг localhost
5. Поднять контейнер с jenkins внутри
6. После настройки jenkins создать job который при запуске будет ротировать логи localhost
7. Настроить sftp доступ к логам zabbix (readonly)

По правде говоря для меня все было в новинку, кроме первого пункта. Далее я покажу мои шаги с возможными проблемами и попытками их решения. Скажу сразу что как для полного новичка в СI/CD у меня не все получалось. И скорее всего другие кандидаты его выполнили быстрее.

Старт.

1. Развернуть на виртуальном хосте Centos 7.
Тут элементарно. Можно использовать VirtualBox. Однако помните что 7-я Centos любит 64-х разрядную ОС и аппаратную поддержку виртуализации VT-x или AMD-V. Если ваш ЦП не поддерживает инструкции VT-x или AMD-V, то VirtualBox не предложит вам эмуляцию 64-х разрядной ОС.

1.1 Установить базовый софт и обновления.
Под базовым софтом подразумевается установка утилит
mc, nano, htop, ncdu    Ok
yum install bind-utils  Ok

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

2. Установить и настроить docker
docker search zabbix
docker pull zabbix

Sunday, 9 April 2017

Files turnover in VirtualBox.

Hello everybody.

I'm testing some feautres with Python. And I have case for it  with Ubuntu or CentOS. And my Ubuntu is working with Oracle VirtualBox. It isn't complicated layout. It all is working well.

So I, maybe, have one task - how can I send or receive some files to/from Ubuntu as Python examples?

I found four decisions of this task.

At the first - I can use the "shared Clipboard" option in VirtualBox: Settings-General-Advanced. So you can see on the picture


 
 At the second - I can use the "shared folders" option in VirtualBox too: Settings-Shared folders.

Wednesday, 1 June 2016

CentOS 7 и русская консоль.

Всем привет.

Для одного экспериментиа срочно понадобился Linux.

Так как требований особых небыло то был взят образ CentOS 7 с официального сайта CentOS-7-x86_64-Minimal-1511.iso.

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

Дальнейшие шаги новичка.

Проверяем состояние консоли
$localectl status
system locale: lang=ru_UA.UTF-8
VC keymap: us
X11 layout: ru,us
X11 options: grp:alt_shift_toggle

Вот, в keymap только us.

Проверяем что есть в наличии соотвествующая русская раскладка
$localectl list-keymaps | grep ru
Получил в ответ длинный ru-список.

Ага, она есть, далее колдуем либо так как здесь говорят, что localectl делает перманентные изменения:
https://linuxconfig.org/how-to-change-system-keyboard-keymap-layout-on-centos-7-linux


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

Версия на печать

Популярное