Сообщение Система управления конфигурацией Puppet развёртывание на linux test появились сначала на Blog of 5house.
]]>https://redos.red-soft.ru/base/redos-8_0/8_0-administation/8_0-remote-admin/8_0-puppet/
https://wiki.astralinux.ru/pages/viewpage.action?pageId=353635618
| host | ip | OS |
| server.5house.loc | 192.168.122.202 | Astra Linux 1.8 (Debian) |
| astra1.5house.loc | 192.168.122.152 | Astra Linux 1.7 (Debian) |
| redos8.5house.loc | 192.168.122.59 | RedOS (Centos) |
Настройка репозиториев Astra Linux
/etc/apt/sources.list , раскомментируйте строчку подключения к сетевым репозиториям
nano /etc/apt/sources.list
# deb cdrom:[OS Astra Linux 1.8.3.8 1.8_x86-64 DVD ]/ 1.8_x86-64 contrib main non-free non-free-firmware
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware
Обновление кэша пакетов и установка пакета сертиикатов
sudo apt update
apt install ca-certificates
apt install openjdk-11-jre-headless puppetserver
apt install openjdk-17-jre-headless puppetserver
PuppetServer использует Java и Ruby для работы
После установки пакетов, включите и добавьте в автозапуск Puppet:
systemctl enable puppetserver
systemctl start puppetserver
Проверить, что сервис успешно стартует можно командой
root@server:~# systemctl status puppetserver
● puppetserver.service - Puppet Server
Loaded: loaded (/lib/systemd/system/puppetserver.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-04-20 11:16:16 MSK; 1min 11s ago
Далее перейдем к установке настройки клиента на машине Astra1 (Astra Linux 1.7)
sudo apt update
sudo apt install puppet-agent
sudo nano /etc/hosts
192.168.122.202 server.5house.loc server
127.0.2.1 puppet
nano /etc/puppet/puppet.conf
[main]
server = server.5house.loc
Далее перейдем к установке клиента на машине RedOS (RedOS 8 Centos)
sudo dnf install puppet
sudo nano /etc/hosts
192.168.122.202 server.5house.loc server
127.0.2.1 puppet
nano /etc/puppetlabs/puppet/puppet.conf
[agent]
server = server.5house.loc
show_diff = true
Запустите Агент puppet на клиентском хосте
sudo systemctl start puppet
Попробуем выполнить тестовое подключение с клиента (astra linux,redOS), с помощью команды
whereis puppet
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
sudo /usr/bin/puppet agent -tv
Info: Creating a new RSA SSL key for astra1
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for astra1
Info: Certificate Request fingerprint (SHA256): 6E:1E:EB:1A:4D:27:B2:C1:E1:BA:EE:3B:B0:57:1A:10:1D:19:6F:AE:B7:D3:C7:2E:E1:B2:6E:0C:24:3D:18:CC
Info: Certificate for astra1 has not been signed yet
Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate (astra1).
Exiting now because the waitforcert setting is set to 0.
Теперь агент успешно связался с сервером и отправил запрос на подпись сертификата SSL.
Остался последний шаг — подписать этот запрос на стороне Puppet-сервера.
Error: Server hostname ‘server.5house.loc’ did not match server certificate; expected one of server, DNS:puppet, DNS:server
Удаление сертификатов с клиентского хость
sudo rm -rf /etc/puppetlabs/puppet/ssl
Puppet использует SSL-сертификаты для идентификации и авторизации компьютеров. Сертификаты самоподписные и выдаются встроенным в Puppet центром сертификации.
Одобрим запрос с сервера. Для начала выведем список всех заявок с помощью команды:
whereis puppetserver
sudo /opt/puppetlabs/bin/puppetserver ca list
sudo puppetserver ca list --all
sudo ss -tlnp | grep 8140
sudo puppetserver ca list
Requested Certificates:
astra1 (SHA256) 9E:B0:59:37:7D:AE:20:4A:00:30:8E:78:C9:A8:38:79:A1:3F:59:69:3A:5C:2F:58:68:EB:BF:85:DE:76:4E:E8
redos8. (SHA256) 80:FE:4B:33:54:E2:DF:8E:32:CF:38:2C:F2:F1:92:69:41:82:14:50:31:88:AD:74:08:71:43:98:21:E4:F3:60
На сервере выполним подписание запроса от клиента, с помощью команды:
sudo /opt/puppetlabs/bin/puppetserver ca sign –certname astra1.5house.loc
sudo /opt/puppetlabs/bin/puppetserver ca sign –certname redos8
sudo puppetserver ca sign --certname astra1
sudo puppetserver ca sign --certname redos8.5house.local
Successfully signed certificate request for redos8.5house.local
В Puppet добавили функцию автоматической выдаче сертификата, если в
имени компьютера присутствует какой-нибудь общий элемент.
Конечно, это имя домена *.5house.loc !
Для реализации автовыдачи сертификатов SSL нужно:
Создайте файл /etc/puppetlabs/puppet/autosign.conf со следующим
содержимым:
puppet config print autosign --section master
cd /etc/puppet/
touch autosign.conf
nano autosign.conf
*.5house.loc
chown puppet:puppet autosign.conf
Выполните перезагрузку службы Puppet на сервере.
systemctl restart puppet
После подписания сертификата, попробуем вновь выполнить
принудительное подключение с клиента.
whereis puppet
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
nfo: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for astra1
Info: Applying configuration version '1776682695'
Notice: Applied catalog in 0.01 seconds
/usr/bin/puppet agent -tv
Info: Refreshed CRL: 00:C1:37:83:20:2B:D5:C7:9F:0C:AB:F1:F2:02:1F:80:86:43:C5:18:85:FD:63:0D:D7:2B:24:C1:71:6C:C0:DD
Info: Creating a new RSA SSL key for redos8.5house.loc
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for redos8.5house.loc
Info: Certificate Request fingerprint (SHA256): C0:C9:4F:C3:F0:D6:15:15:C0:47:DB:AF:59:17:4E:4F:EF:55:A2:C1:E5:38:88:7F:2A:CB:76:DD:34:A7:0E:F5
Info: Downloaded certificate for redos8.5house.loc from https://server.5house.loc:8140/puppet-ca/v1
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for redos8.5house.loc
Info: Applying configuration version '1776682695'
Info: Creating state file /var/lib/puppet/state/state.yaml
Notice: Applied catalog in 0.02 seconds
Успешное подключение!
Установка пакета ПО Yandex Browser
Убедимся, что данного ПО нет на клиенте
yandex-browser-stable
-bash: yandex-browser-stable: команда не найдена
apt search yandex-browser
dnf list installed yandex-browser-stable
Создадим файл install_package_YB.pp. название не важно, исключительно
важно его местоположение и расширение — *.pp.
Файл располагается по пути –
sudo mkdir -p /etc/puppetlabs/code/environments/production/manifests
или mkdir -p /etc/puppet/code/environments/production/manifests
nano install_package_YB.pp
package { 'yandex-browser-stable':
ensure => installed,
}
Проверим с клиента, выполните принудительное подключение или ожидайте
30 минут
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
sudo /usr/bin/puppet agent -tv
sudo /usr/bin/puppet agent -tv
[sudo] пароль для andrey:
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for redos8.5house.loc
Info: Applying configuration version '1776685729'
Notice: /Stage[main]/Main/Package[yandex-browser-stable]/ensure: created
Notice: Applied catalog in 15.22 seconds
Удалим пакет YB руками
sudo apt remove yandex-browser-stable
Выполним обращение к серверу с клиента
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for astra1
Info: Applying configuration version '1776686934'
Notice: /Stage[main]/Main/Package[yandex-browser-stable]/ensure: created (corrective)
Notice: Applied catalog in 19.11 seconds
Если наоборот, пакет yandex-browser-stable нужно будет удалить, то можно сделать так:
nano /etc/puppet/code/environments/production/manifests/install_package_YB.pp
package { 'yandex-browser-stable':
ensure => absent,
}
Проверка с клиента
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
sudo /usr/bin/puppet agent -tv
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for astra1
Info: Applying configuration version '1776687176'
Notice: /Stage[main]/Main/Package[yandex-browser-stable]/ensure: removed
Notice: Applied catalog in 1.50 seconds
Попробуем распространить на подчиненные устройства конфигурацию удаленного доступа SSH через файл
Создадим файл на сервере:
/etc/puppetlabs/puppet/fileserver.conf
/etc/puppet touch fileserver.conf
mkdir /etc/puppet/code/files
создание этого файла необходимо, чтобы включить на сервере Puppet режим файлового сервера. Содержимое файла:
nano fileserver.conf
[files]
path /etc/puppet/code/files
allow *
Выполните перезагрузку puppetserver
sudo systemctl restart puppetserver
Скопируем конфигурационный файл sshd_config в директорию
cp /etc/ssh/sshd_config /etc/puppet/code/files
Также, выдайте файлу другие права доступа, в каталоге files.
sudo chown -R root:puppet /etc/puppet/code/files
sudo chmod 755 sshd_config
Выполним настройку файла sshd_config, например. Давайте сменим порт для
SSH с 22 на 222
nano sshd_config
port 222
Создаём новый манифест файл config_ssh.pp
cd /etc/puppet/code/environments/production/manifests
touch config_ssh.pp
nano config_ssh.pp
file {'/etc/ssh/sshd_config':
ensure => file,
path => '/etc/ssh/sshd_config',
source => 'puppet:///files/sshd_config',
mode => '0755',
owner => 'root',
group => 'root',
}
service {'sshd':
ensure => running,
subscribe => File['/etc/ssh/sshd_config']
}
Самый простой и правильный способ проверить синтаксис — использовать встроенную команду puppet parser validate.
puppet parser validate /etc/puppet/code/environments/production/manifests/config_ssh.pp
Данный манифест распространяет собственный sshd_config файл в путь к клиенту и выполняет перезагрузку службы sshd только при условии, если файл был изменен.
Проверим результат на клиенте
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
sudo /usr/bin/puppet agent -tv
-#Port 22
+Port 222
Info: Computing checksum on file /etc/ssh/sshd_config
Info: /Stage[main]/Main/File[/etc/ssh/sshd_config]: Filebucketed /etc/ssh/sshd_config to puppet with sum 4e53556b2b73f61d9b828691e25cbbde
Notice: /Stage[main]/Main/File[/etc/ssh/sshd_config]/content: content changed '{md5}4e53556b2b73f61d9b828691e25cbbde' to '{md5}8f8e22bdaed88edfc4c7af1ba3a72d3d'
Info: /Stage[main]/Main/File[/etc/ssh/sshd_config]: Scheduling refresh of Service[sshd]
Notice: /Stage[main]/Main/Service[sshd]: Triggered 'refresh' from 1 event
Notice: Applied catalog in 0.25 seconds
Проверим прослушиваемые порты на клиенте
ss -natu | grep 222
tcp LISTEN 0 128 0.0.0.0:222 0.0.0.0:*
tcp LISTEN 0 128 [::]:222 [::]:*
#redos
sudo semanage port -l | grep ssh
sudo semanage port -a -t ssh_port_t -p tcp 222
ssh -p 222 andrey@astra1
Манифест система выполняет установку пакета virt-manager и xrdp.
cd /etc/puppet/code/environments/production/manifests/
nano install_pkg_vm_xrdp.pp
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
[sudo] пароль для andrey:
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for astra1
Info: Applying configuration version '1776692895'
Notice: /Stage[main]/Main/Package[virt-manager]/ensure: created
Notice: Applied catalog in 38.55 seconds
Манифест Система выполняет настройку службы xrdp. Меняет порт с 3389 на 1337 и перезапускает службу после изменения конфигурации.
Диагностируем текущий файл настроек xrdp на клиенте
grep "port=" /etc/xrdp/xrdp.ini
сd /etc/puppet/code/environments/production/manifests/
nano config_xrdp.pp
# 1. Меняем порт (команда sed универсальна)
exec { 'update_xrdp_port':
command => "/usr/bin/sed -i 's/^port=3389/port=1337/' /etc/xrdp/xrdp.ini",
onlyif => "/usr/bin/grep -q '^port=3389' /etc/xrdp/xrdp.ini",
path => ['/usr/bin', '/bin', '/usr/sbin'],
notify => Service['xrdp'],
}
# 2. Настройка безопасности и брандмауэра в зависимости от ОС
if $facts['os']['family'] == 'RedHat' {
# Только для Red OS / CentOS
exec { 'selinux_xrdp_1337':
command => '/usr/sbin/semanage port -a -t ssh_port_t -p tcp 1337',
unless => '/usr/sbin/semanage port -l | grep -q 1337',
path => ['/usr/bin', '/usr/sbin'],
before => Service['xrdp'],
}
exec { 'firewall_xrdp_1337':
command => '/usr/bin/firewall-cmd --permanent --add-port=1337/tcp && /usr/bin/firewall-cmd --reload',
unless => '/usr/bin/firewall-cmd --list-all | grep 1337',
path => ['/usr/bin', '/bin'],
}
} elsif $facts['os']['family'] == 'Debian' {
# Только для Astra Linux / Debian / Ubuntu
exec { 'ufw_allow_xrdp_1337':
command => '/usr/sbin/ufw allow 1337/tcp',
unless => '/usr/sbin/ufw status | grep -q 1337',
path => ['/usr/sbin', '/usr/bin', '/bin'],
}
}
Проверим прослушиваемые порты клиент пк
ss -natu | grep 3389
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
ss -natu | grep 1337
Манифест система выполняет создание служебного локального пользователя по
имени – autouser с паролем P@ssw0rd. Пользователь должен быть
работоспособен.
Шифрование пароля через whois или openssl
sudo apt install whois
mkpasswd -m sha-512 P@ssw0rd
openssl passwd -6 P@ssw0rd » usser.pp
$6$wt5CXy5AQwxbtI0L$.0VeOzsXTnU9lhOo7R1knU2X8kKSzrDtHtV/kaSocRLcRZIVA8jBTypZGzIodnIdxM8StU4JtxJVCTaTl3Hgj0
cd /etc/puppet/code/environments/production/manifests
nano user.pp
node 'astra1' {
user {'UsersAstra':
name => 'autouser',
home => '/home/autouser',
managehome => true,
shell => '/bin/bash',
ensure => present,
password => '$y$j9T$fq7KAAuXh1z0UZlYCCMhk/$Ci1G.ln6EiK2bsn8wlhP0F9vLuKDe3xeNh5DTQDr/s4',
groups => ['sudo'],
}
}
node 'redos8.5house.loc' {
user {'UsersRedOS':
name => 'autouser',
home => '/home/autouser',
managehome => true,
shell => '/bin/bash',
ensure => present,
forcelocal => true,
password => '$y$j9T$zzUtoEesp/BmVBhNc8pDE0$qJkEWvDe7i6TnVyJG09grFHmKhVYs4Z1bnXhJVSP41C',
groups => ['wheel'],
}
}
Проверка изменений на клиенте
sudo /opt/puppetlabs/puppet/bin/puppet agent -tv
Notice: /Stage[main]/Main/Node[astra1]/User[UsersAstra]/ensure: created
id autouser
uid=1002(autouser) gid=1003(autouser) группы=1003(autouser),27(sudo)
sudo grep autouser /etc/shadow
Сменить пользователя в консоли
su — autouser
Манифест не работает, для RedOS – хэш пароля не записывается в etc/shadow
Сообщение Система управления конфигурацией Puppet развёртывание на linux test появились сначала на Blog of 5house.
]]>Сообщение Ansible первые базовые шаги Уроки Linux ч.3 появились сначала на Blog of 5house.
]]>Передём в папку и создать папку files
cd ~/ansible_turorial
mkdir files
Создаём файл html
nano files/default_site.html
<html>
<title>Web-site test</title>
<body>
<p>Ansible is awersome!</p>
</body>
</html>
Правим файл
Копируем файл default_site.html из папки files
на сервера по пути /var/www/html/index.html
назначаем права доступа владельца и группу
nano site2.yml
- name: copy default html file for site
tags: apache,apache2,httpd
copy:
src: default_site.html
dest: /var/www/html/index.htm
owner: root
group: root
mode: 0644
Запускаем сценарий playbook
ansible-playbook --ask-become-pass site2.yml
По результатам
TASK [copy default html file for site]
подключаемся и проверяем содержимое файла index.html
ssh andrey@192.168.122.152
cat /var/www/html/index.html
Правим файл site2.yml
добавим хосты рабочие станции
добавим новое задани устновить unzip
установка terraform используя распаковку архива дистрибутива
hosts: workstations
become: true
tasks:
- name: install unzip
package:
name: unzip
-name: install terraform
unarchive:
src: https://releases.hashicorp.com/terraform/1.14.5/terraform_1.14.5_linux_amd64.zip
dest: /usr/local/bin/
remote_src: yes
mode: 0755
owner: root
group: root
Создадим раздел, для рабочих станций в файле inventory
nano inventory
[workstations]
192.168.122.92
При необходимости копируем ключ файл ansible.pub
ssh-copy-id -i ~/.ssh/ansible.pub 192.168.122.92
ansible-playbook --syntax-check site2.yml
Проверим наличие установленного terraform
which terraform
Управление службами — внесение изменение в файле
Редактируем файл сценария
добавим автозапуск и включение сервиса web server apache httpd
для ОС Centos,redos
nano site3.yml
- name: start httpd (CentOS,RED)
tags: apache,centos,httpd,redos
service:
name: httpd
state: started
enabled: yes
when: ansible_distribution == "RED"
Проверка статуса web server apache httpd
и последующая остановка службы
ssh andrey@192.168.122.59
systemctl status httpd
sudo systemctl stop httpd
systemctl disable httpd
Редактируем файл сценария, меняем текстовую конфигурацию
поле ServerAdmin начало строки в файле /etc/httpd/conf/httpd.conf
Добавим переменную register:httpd
nano site3.yml
- name: start httpd (CentOS,RED)
tags: apache,centos,httpd,redos
service:
name: httpd
state: started
enabled: yes
when: ansible_distribution in ["CentOS","RED"]
- name: change e-mail address for admin
tags: apache,centos,httpd,redos
lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: '^ServerAdmin'
line: ServerAdmin 5house@5house.wxyz
when: ansible_distribution in ["CentOS","RED"]
register: httpd
- name: restart httpd (CentOS,RedOS)
tags: apache,centos,httpd,redos
service:
name: httpd
state: restarted
when: httpd.changed
- name: copy default html file for site
tags: apache,apache2,httpd
copy:
src: default_site.html
dest: /var/www/html/index.html
owner: root
group: root
mode: 0644
просмотр текущего содержимого переменной
ServerAdmin начало строки в файле /etc/httpd/conf/httpd.conf
ssh andrey@192.168.122.59
cat /etc/httpd/conf/httpd.conf |grep ServerAdmin
ansible-playbook --syntax-check site3.yml
ansible-playbook --ask-become-pass site3.yml
Управление пользователями
Создадим пользователя rufus на всех серверах
добавим ползователя rufus в группу root
nano site4.yml
- hosts: all
become: true
tasks:
- name: create rufus user
tags: always
user:
name: rufus
groups: root
ansible-playbook --syntax-check site4.yml
Перед запуском сценария проверим на удаленном сервере файл
ssh andrey@192.168.122.59
cat /etc/passwd
ansible-playbook --ask-become-pass site4.yml
cat /etc/passwd
rufus:x:1001:1001::/home/rufus:/bin/bash
Добавим ключ сертификат ssh на сервер
и права sudoers
- hosts: all
become: true
tasks:
- name: create rufus user
tags: always
user:
name: rufus
groups: root
- name: add ssh key for rufus
tags: always
authorized_key:
user: rufus
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILr8Fpxic8UgrUJ8n21WjU2aSZYdSFW9XQSmtQa8HMOU ansible"
- name: add sudoers files for rufus
tags: always
copy:
src: sudoer_rufus
dest: /etc/sudoers.d/rufus
owner: root
group: root
mode: 0440
проверка содержимого папки
ssh andrey@192.168.122.59
sudo ls -l /etc/sudoers.d
проверка подключение к серверу без пароля,
просмотр файл авторизованных ключей
ssh -i ~/.ssh/ansible rufus@192.168.122.218
whoami
sudo apt update
cat .ssh/authorized_keys
Упрощение запуска playbook
цель убрать пароль Добавляем пользователя, как пароль в файл конфигурации ansible.cfg
cd files
nano ansible.cfg
[defaults]
inventory = inventory
private_key_file = ~/.ssh/ansible
remote_user = rufus
запуск сценария без пароля
ansible-playbook site4.yml
Первичный загрузочный playbook — создание пользователя на сервере
cp site4.yml bootstrap.yml
ansible-playbook --syntax-check site5.yml
ansible-playbook --ask-become-pass site5.yml
---
- hosts: all
become: true
tasks:
- name: install updates (RedOS,Centos)
tags: always
dnf:
update_cache: yes
change_whem: false
when: ansible_distribution in ["Centos","RED"]
- name: install updates (Astra Linux)
tags: always
apt:
update_cache: yes
change_when: false
when: ansible_distribution == "Astra Linux"
- hosts: all
become: true
tasks:
- name: add ssh key for rufus
tags: always
authorized_key:
user: rufus
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILr8Fpxic8UgrUJ8n21WjU2aSZYdSFW9XQSmtQa8HMOU ansible"
- hosts: web_servers
become: true
tasks:
- name: install apache2 and php packages for Astra Linux,Debian
tags: apache,apache2,astra,debian
apt:
name:
- apache2
- libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
- name: install apache2 and php packages Centos,RED
tags: apache,centos,httpd.redos
dnf:
name:
- httpd
- php
state: latest
when: ansible_distribution in ["Centos","RED"]
- name: start httpd (CentOS,RED)
tags: apache,centos,httpd,redos
service:
name: httpd
state: started
enabled: yes
when: ansible_distribution in ["CentOS","RED"]
- name: change e-mail address for admin
tags: apache,centos,httpd,redos
lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: '^ServerAdmin'
line: ServerAdmin 5house@5house.wxyz
when: ansible_distribution in ["CentOS","RED"]
register: httpd
- name: restart httpd (CentOS,RedOS)
tags: apache,centos,httpd,redos
service:
name: httpd
state: restarted
when: httpd.changed
- name: copy default html file for site
tags: apache,apache2,httpd
copy:
src: default_site.html
dest: /var/www/html/index.html
owner: root
group: root
mode: 0644
- hosts: db_servers
become: true
tasks:
- name: install mariadb package (RedOS,Centos)
tags: centos,redos,db,mariadb
dnf:
name: mariadb
state: latest
when: ansible_distribution in ["Centos","RED"]
- name: install mariadb package (Astra linux)
tags: db,mariadb,debian,astra
apt:
name: mariadb-server
state: latest
when: ansible_distribution == "Astra Linux"
- hosts: file_servers
become: true
tasks:
- name: install samba package
tags: samba
package:
name: samba
state: latest
nano bootstrap.yml
---
- hosts: all
become: true
pre_tasks:
- name: update repo cache (RedOS,Centos)
tags: always
dnf:
update_only: yes
update_cache: yes
when: ansible_distribution in ["Centos","RED"]
- name: update repo cache (Astra Linux)
tags: always
apt:
upgrade: dist
update_cache: yes
when: ansible_distribution == "Astra Linux"
- hosts: all
become: true
tasks:
- name: create rufus user
tags: always
user:
name: rufus
groups: root
- name: add ssh key for simone
tags: always
authorized_key:
user: rufus
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILr8Fpxic8UgrUJ8n21WjU2aSZYdSFW9XQSmtQa8HMOU ansible"
- name: add sudoers files for rufus
tags: always
copy:
src: sudoer_rufus
dest: /etc/sudoers.d/rufus
owner: root
group: root
mode: 0440
Роли Разделение задач
копируем файл playbook
cp site5.yml site_before_roles.yml
Создаём каталог под роли
mkdir roles
cd roles
mkdir base
mkdir db_servers
mkdir file_servers
mkdir web_servers
mkdir workstations
clear
ls -l
Создадим подкаталоги — задачи в ней создадим playbook
mkdir base/tasks
mkdir db_servers/tasks
mkdir file_servers/tasks
mkdir web_servers/tasks
mkdir workstations/tasks
ls base
cd /home/andrey/ansible_tutorial/roles/base/tasks/
nano main.yml
- name: add ssh key for rufus
tags: always
authorized_key:
user: rufus
key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILr8Fpxic8UgrUJ8n21WjU2aSZYdSFW9XQSmtQa8HMOU ansible"
cd ..
cd ..
cd db_servers
cd tasks
nano main.yml
- name: install mariadb package (RedOS,Centos)
tags: centos,redos,db,mariadb
dnf:
name: mariadb
state: latest
when: ansible_distribution in ["Centos","RED"]
- name: install mariadb package (Astra linux)
tags: db,mariadb,debian,astra
apt:
name: mariadb-server
state: latest
when: ansible_distribution == "Astra Linux"
cd /home/andrey/ansible_tutorial/roles/file_servers/tasks
nano main.yml
- name: install samba package
tags: samba
package:
name: samba
state: latest
cd /home/andrey/ansible_tutorial/roles/web_servers/tasks
nano main.yml
- name: install apache2 and php packages for Astra Linux,Debian
tags: apache,apache2,astra,debian
apt:
name:
- apache2
- libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
- name: install apache2 and php packages Centos,RED
tags: apache,centos,httpd.redos
dnf:
name:
- httpd
- php
state: latest
when: ansible_distribution in ["Centos","RED"]
- name: start httpd (CentOS,RED)
tags: apache,centos,httpd,redos
service:
name: httpd
state: started
enabled: yes
when: ansible_distribution in ["CentOS","RED"]
- name: change e-mail address for admin
tags: apache,centos,httpd,redos
lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: '^ServerAdmin'
line: ServerAdmin 5house@5house.wxyz
when: ansible_distribution in ["CentOS","RED"]
register: httpd
- name: change e-mail address for admin
tags: apache,centos,httpd,redos
lineinfile:
path: /etc/httpd/conf/httpd.conf
regexp: '^ServerAdmin'
line: ServerAdmin 5house@5house.wxyz
when: ansible_distribution in ["CentOS","RED"]
register: httpd
cd /home/andrey/ansible_tutorial/roles/workstations/tasks
nano main.yml
- name: install unzip
package:
name: unzip
state: present
- name: install terraform
unarchive:
src: https://hashicorp-releases.yandexcloud.net/terraform/1.14.5/terraform_1.14.5_linux_amd64.zip
dest: /usr/local/bin
remote_src: yes
mode: '0755'
owner: root
group: root
создадим папки
cd /home/andrey/ansible_tutorial/roles/web_servers
mkdir files
cp ../../files/default_site.html files/
nano site5.yml
---
- hosts: all
become: true
pre_tasks:
- name: install updates (RedOS,Centos)
tags: always
dnf:
update_only: yes
update_cache: yes
when: ansible_distribution in ["Centos","RED"]
- name: install updates (Astra Linux)
tags: always
apt:
upgrade: dist
update_cache: yes
when: ansible_distribution == "Astra Linux"
- hosts: all
become: true
roles:
- base
- hosts: workstations
become: true
roles:
- workstations
- hosts: web_servers
become: true
roles:
- web_servers
- hosts: db_servers
become: true
roles:
- db_servers
- hosts: file_servers
become: true
roles:
- file_servers
ansible-playbook site5.yml
Сообщение Ansible первые базовые шаги Уроки Linux ч.3 появились сначала на Blog of 5house.
]]>Сообщение Ansible первые базовые шаги Уроки Linux ч.2 появились сначала на Blog of 5house.
]]>Условие when в Ansible — это условное выражение, которое позволяет выполнять задачу только если выполнено определённое условие. Условие может быть основано на переменных, фактах, результатах предыдущих задач или других критериях.
Разделение playbook в зависимости от ОС дистрибутива, добавим ip сервера RedOs (rpm) в файл inventory, а в файл install_apache.yml фильтр по условию ОС Astra Linux
cd ~/ansible_tutorial
nano inventroy
ansible all -b -K -a "cat /etc/os-release"
ansible all -m setup -a "filter=ansible_distribution*" -b -K
nano install_apache.yml
---
- hosts: all
become: true
tasks:
- name: update repository index
apt:
update_cache: yes
when: ansible_distribution in ["Debian", "Astra Linux"]
- name: install apache2 package
apt:
name: apache2
state: latest when: ansible_distribution == "Astra Linux"
- name: add php support for apache
apt:
name: libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
ansible-playbook --ask-become-pass install_apache.yml
TASK [update repository index] *********************************************************************************************************
skipping: [192.168.122.59]
ok: [192.168.122.202]
ok: [192.168.122.218]
ok: [192.168.122.152]
Добавим отдельные задачи в файл playbook установки пакетов для ОС RedOS,Centos
nano install_apache.yml
---
- hosts: all
become: true
tasks:
- name: update repository index
apt:
update_cache: yes
when: ansible_distribution in ["Debian", "Astra Linux"]
- name: install apache2 package
apt:
name: apache2
state: latest
when: ansible_distribution == "Astra Linux"
- name: add php support for apache
apt:
name: libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
- name: update repository index Centos RedOS
dnf:
update_cache: yes
when: ansible_distribution in ["Centos", "RED"]
- name: install apache2 package Centos,RED
dnf:
name: httpd
state: latest
when: ansible_distribution == "RED"
- name: add php support for apache Centos,RED
dnf:
name: php
state: latest
when: ansible_distribution == "RED"
PLAY RECAP *****************************************************************************************************************************
192.168.122.152 : ok=4 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0
192.168.122.202 : ok=4 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0
192.168.122.218 : ok=4 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0
192.168.122.59 : ok=4 changed=2 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0
Особенность RedOs Centos , Apache httpd сервис демон не запускается по умолчанию после установки, и доступ к порту http tcp 80 иногда блокирует firewall
systemctl status httpd
○ httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
/usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: inactive (dead)
Docs: man:httpd.service(8)
sudo systemctl start httpd
sudo firewall-cmd --add-port=80/tcp
Объединяем установку пакетов и запуск кэша обновлений в файле install_apache.yml
nano install_apache.yml
---
- hosts: all
become: true
tasks:
- name: install apache2 and php packages upd cache for Astra Linux,Debian
apt:
name:
- apache2
- libapache2-mod-php
state: latest
update_cache: yes
when: ansible_distribution == "Astra Linux"
- name: install apache2 and php packages upd cache Centos,RED
dnf:
name:
- httpd
- php
state: latest
update_cache: yes
when: ansible_distribution in ["Centos","RED"]
ansible-playbook --ask-become-pass install_apache.yml
Оптимизация плейбука до одного действия используя переменные и универсальный менеджер пакетов package
nano install_apache.yml
---
- hosts: all
become: true
tasks:
- name: install apache and php packages upd cache
package:
name:
- "{{ apache_package }}"
- "{{ php_package }}"
state: latest
update_cache: yes
Редактируем файл инвентаризации хостов и объявляем переменные
nano inventory
192.168.122.152 apache_package=apache2 php_package=libapache2-mod-php
192.168.122.218 apache_package=apache2 php_package=libapache2-mod-php
192.168.122.202 apache_package=apache2 php_package=libapache2-mod-php
192.168.122.59 apache_package=httpd php_package=php
Создание групп в списке инвентаризации хостов
nano inventory
[web_servers]
192.168.122.152
192.168.122.59
[db_servers]
192.168.122.218
[file_servers]
192.168.122.202
[git_servers]
192.168.122.152
192.168.122.202
192.168.122.59
cp install_apache.yml site.yml
nano site.yml
Обновим кэш пакетов и обновим пакеты в зависимости от ОС Astra Linux, RedOS, настройка серверов, для web серверов установка apache и php
---
- hosts: all
become: true
tasks:
- name: install updates (RedOS,Centos)
dnf:
update_only: yes
update_cache: yes
when: ansible_distribution in ["Centos","RED"]
- name: install updates (Astra Linux)
apt:
upgrade: dist
update_cache: yes
when: ansible_distribution == "Astra Linux"
- hosts: web_servers
become: true
tasks:
- name: install apache2 and php packages for Astra Linux,Debian
apt:
name:
- apache2
- libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
- name: install apache2 and php packages Centos,RED
dnf:
name:
- httpd
- php
state: latest
when: ansible_distribution in ["Centos","RED"]
ansible-playbook --ask-become-pass site.yml
Предварительные задачи pre_tasks — задачи которые требуется выполнить в первую очерель, добавим в site2.yml раздел ,для серверов баз данных
ansible-playbook --syntax-check site2.yml
ansible-playbook --ask-become-pass site2.yml
TASK [install mariadb package (Astra linux)] *************************************************************************************
changed: [192.168.122.218]
andrey@astra2:~$ systemctl status mariadb.service
● mariadb.service - MariaDB 10.3.39 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2026-01-15 15:08:12 MSK; 8min ago
добавим в site2.yml раздел, для файловых серверов
nano site2.yml
---
- hosts: all
become: true
tasks:
- name: install updates (RedOS,Centos)
dnf:
update_only: yes
update_cache: yes
when: ansible_distribution in ["Centos","RED"]
- name: install updates (Astra Linux)
apt:
upgrade: dist
update_cache: yes
when: ansible_distribution == "Astra Linux"
- hosts: web_servers
become: true
tasks:
- name: install apache2 and php packages for Astra Linux,Debian
apt:
name:
- apache2
- libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
- name: install apache2 and php packages Centos,RED
dnf:
name:
- httpd
- php
state: latest
when: ansible_distribution in ["Centos","RED"]
- hosts: db_servers
become: true
tasks:
- name: install mariadb package (RedOS,Centos)
dnf:
name: mariadb
state: latest
when: ansible_distribution in ["Centos","RED"]
- name: install mariadb package (Astra linux)
apt:
name: mariadb-server
state: latest
when: ansible_distribution == "Astra Linux"
- hosts: file_servers
become: true
tasks:
- name: install samba package
package:
name: samba
state: latest
- hosts: git_servers
become: true
tasks:
- name: install git package
package:
name: git
state: latest
ansible-playbook --syntax-check site2.yml
ansible-playbook --ask-become-pass site2.yml
Tags Теги позволяют выполнять не весь плейбук, а только его определенные части, помеченные нужными тегами
nano site.yml
---
- hosts: all
become: true
tasks:
- name: install updates (RedOS,Centos)
tags: always
dnf:
update_only: yes
update_cache: yes
when: ansible_distribution in ["Centos","RED"]
- name: install updates (Astra Linux)
tags: always
apt:
upgrade: dist
update_cache: yes
when: ansible_distribution == "Astra Linux"
- hosts: web_servers
become: true
tasks:
- name: install apache2 and php packages for Astra Linux,Debian
tags: apache,apache2,astra,debian
apt:
name:
- apache2
- libapache2-mod-php
state: latest
when: ansible_distribution == "Astra Linux"
- name: install apache2 and php packages Centos,RED
tags: apache,centos,httpd.redos
dnf:
name:
- httpd
- php
state: latest
when: ansible_distribution in ["Centos","RED"]
- hosts: db_servers
become: true
tasks:
- name: install mariadb package (RedOS,Centos)
tags: centos,redos,db,mariadb
dnf:
name: mariadb
state: latest
when: ansible_distribution in ["Centos","RED"]
- name: install mariadb package (Astra linux)
tags: db,mariadb,debian,astra
apt:
name: mariadb-server
state: latest
when: ansible_distribution == "Astra Linux"
- hosts: file_servers
become: true
tasks:
- name: install samba package
tags: samba
package:
name: samba
state: latest
- hosts: git_servers
become: true
tasks:
- name: install git package
tags: git
package:
name: git
state: latest
Вывести доступные теги из файла playbook
ansible-playbook --list-tags site2.yml
Запуск задач из файла playbook для ОС centos используя тег tags.
тег always выполняется всегда
ansible-playbook --tags centos --ask-become-pass site2.yml
ansible-playbook --tags apache --ask-become-pass site2.yml
Запуск задач из файла playbook используя несколько тегов
ansible-playbook --tags "apache,db" --ask-become-pass site2.yml
Сообщение Ansible первые базовые шаги Уроки Linux ч.2 появились сначала на Blog of 5house.
]]>Сообщение Ansible первые базовые шаги Уроки Linux ч.1 появились сначала на Blog of 5house.
]]>Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Применяется для автоматизации настройки и развёртывания программного обеспечения. Обычно используется для управления Linux-узлами, но Windows также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH- или WinRM соединению.
Пользователь Ansible создаёт определённые сценарии («плейбуки», англ. playbooks) в формате YAML с описанием требуемых состояний управляемой системы. Сценарий — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы и многое другое. Ansible проверяет, что каждый из ресурсов системы находится в ожидаемом состоянии и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.
| hostname | OS | Kernel | ip a |
| astra17-1 | Astra Linux Special Edition 1.7 (Debian 10) | 6.1 | 152 |
| astra17-2 | Astra Linux Special Edition 1.7 (Debian 10) | 6.1 | 218 |
| astra18-3 | Astra Linux Special Edition 1.8 (Debian 12) | 6.12 | 202 |
| astra17-ansible | Astra Linux Special Edition 1.7 (Debian 10) | 6.12 | 92 |
| RedOS8 | RedOS 8 (rpm) | 6.12 | 59 |
В большинстве дистрибутивов OpenSSH-сервер уже предустановлен. Если OpenSSH отсутствует в системе, его можно установить вручную deb/rpm:
sudo apt update
sudo apt install -y openssh-server
sudo dnf install -y openssh-server
После установки службу требуется запустить и включить автозапуск.
sudo systemctl enable ssh --now
sudo systemctl enable sshd --now
sudo systemctl status ssh
sudo systemctl status sshd
Проверим подключение к серверам по ssh ,при запросе написать yes
andrey@ansible:~$ ssh 192.168.122.59
The authenticity of host ‘192.168.122.59 (192.168.122.59)’ can’t be established.
ECDSA key fingerprint is SHA256:I5odTkEZcGaMEWn38eh1LgEA5IyzwKYoZNpvkwLOn8k.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Необходимо сгенерировать и распространить ключ на все управляемые узлы. Для генерации ключа используется следующая команда с указанием пароля и пути по умолчанию:
ssh-keygen -t ed25519 -C "andrey default"
ls -la .ssh
cat .ssh/id_ed25519.pub
Далее нужно распространить публичный ключ id_ed25519.pub на все подключенные хосты. Распространить ключи на хосты можно командой, указав запрашиваемый пароль пользователя или ключа:
ssh-copy-id -i ~/.ssh/id_ed25519.pub 192.168.122.152
ssh-copy-id -i ~/.ssh/id_ed25519.pub 192.168.122.218
ssh-copy-id -i ~/.ssh/id_ed25519.pub 192.168.122.202
ssh-copy-id -i ~/.ssh/id_ed25519.pub 192.168.122.59
Проверка добавленного ssh ключа на удаленном узле в файле ~/.ssh/authorized_keys
ssh 192.168.122.59
Enter passphrase for key '/home/andrey/.ssh/id_ed25519':
Last login: Wed Jan 14 18:11:54 2026 from 192.168.122.92
[andrey@redos8 ~]$ls -la .ssh
cat .ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII5uDo0UvaMR+QEtfyROUEAMPWvheXr/pagYtKM+PJPu andrey default
Для ansible необходимо сгенерировать и распространить ключ на все управляемые узлы. Для генерации ключа используется следующая команда без указания пароля, с указанием пути сохранения:
ssh-keygen -t ed25519 -C "ansible"
/home/andrey/.ssh/ansible
Далее нужно распространить публичный ключ ansible.pub на все подключенные хосты. Распространить ключи на хосты можно командой, указав запрашиваемый пароль ключа:
ssh-copy-id -i ~/.ssh/ansible.pub 192.168.122.152
ssh-copy-id -i ~/.ssh/ansible.pub 192.168.122.218
ssh-copy-id -i ~/.ssh/ansible.pub 192.168.122.202
ssh-copy-id -i ~/.ssh/ansible.pub 192.168.122.59
Подключение по SSH с использованием конкретного файла ключа ansible без пароля
ssh -i ~/.ssh/ansible 192.168.122.59
Кэшируем в памяти парольную фразу, для ssh в менеджере ключей ssh-agent
eval $(ssh-agent)
ps aux | grep ssh-agent
ssh-add
Создание псевдонима алиаса, для команды ssh-agent, на текущий сеанс или добавить строку в файл
alias ssha='eval $(ssh-agent) && ssh-add'
nano .bashrc
nano /etc/apt/sources.list
sudo apt update
sudo apt install ansible
ansible --version
ansible 2.10.17
Создаём файл инвентаризации, для ansible и добавим построчно ip адреса хостов
cd ~
mkdir ansible_tutorial
cd ansible_tutorial
nano inventory
ls
Проверка подключения управляемых узлов используя файл ключа ssh и списка ip из файла inventroy в ansible
ansible all --key-file ~/.ssh/ansible -i inventory -m ping
192.168.122.202 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Создаем файл конфигурационный фал ansible.cfg по умолчанию имя файла inventroy и ключ ssh ansible
cd ~/ansible_tutorial
nano ansible.cfg
[defaults]
inventory = inventory
private_key_file = ~/.ssh/ansible
Просто опрос пинг. Ко всем хостам (all) применяется модуль ping (-m ping)
ansible -m ping all
192.168.122.152 | SUCCESS => {
«ansible_facts»: {
«discovered_interpreter_python»: «/usr/bin/python»
},
«changed»: false,
«ping»: «pong»
}
Показать список хостов из файла inventory
ansible all --list-hosts
hosts (3):
192.168.122.152
192.168.122.218
192.168.122.202
Модуль сбора фактов — параметров и переменных управляемого сервера
ansible all -m gather_facts
ansible -m shell -a 'cat /etc/astra_version' all
Вывод фактов (системная информация) с одного хоста
ansible all -m gather_facts --limit 192.168.122.218
192.168.122.218 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.122.218"
],
Запуск специальных команд с повышенными sudo привилегиями, apt обновить кэш списка доступных приложений на всех хостах
ansible all -m apt -a update_cache=true --become --ask-become-pass
192.168.122.202 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"cache_update_time": 1768411269,
"cache_updated": true,
"changed": true
}
Изменение в файле /etc/apt/sources.list убрать символ комментариев # и откл. deb cdrom
ansible all -m replace -a "path=/etc/apt/sources.list regexp='^#\s*(deb .*)' replace='\1'" --become --ask-become-pass && \
ansible all -m replace -a "path=/etc/apt/sources.list regexp='^(deb cdrom.*)' replace='# \1'" --become --ask-become-pass
192.168.122.152 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"msg": "5 replacements made"
}
Установка пакета htop, на все сервера используя ansible и apt с правами sudo
ansible all -m apt -a name=htop --become --ask-become-pass
192.168.122.202 | CHANGED => {
"ansible_facts": {
192.168.122.202 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"cache_update_time": 1768412228,
"cache_updated": false,
"changed": false
}
andrey@astra1:~$ apt search htop
Сортировка… Готово
Полнотекстовый поиск… Готово
aha/stable,stable 0.5-1+b3 amd64
ANSI color to HTML converter
htop/stable,stable,now 2.2.0-1+b3 amd64 [установлен]
interactive processes viewer
Установим повторно пакет tmux на все сервера используя ansible
ansible all -m apt -a name=tmux --become --ask-become-pass
192.168.122.202 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"cache_update_time": 1768412228,
"cache_updated": false,
"changed": false
}
Просмотр журнала истории установки пакетов apt на хосте
/var/log/apt
cat history.log
Обновление пакета на серверах хостах используя ansible отобразим список пакетов для хоста
sudo apt update
sudo apt dist-upgrade
sudo apt dist-upgrade | grep unrar
ansible all -m apt -a name=unrar --become --ask-become-pass
Смотрим, что пакет уже установлен — нет изменений
192.168.122.202 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"cache_update_time": 1768412228,
"cache_updated": false,
"changed": false
}
Обновим пакет urar до последний версии на всех серверах
ansible all -m apt -a "name=unrar state=latest" --become --ask-become-pass
192.168.122.152 | CHANGED => {
Установить обновления пакетов на сервер 192.168.122.152 дол актуальной версии, займет время
ansible 192.168.122.152 -m apt -a "upgrade=dist" --become --ask-become-pass
Установка apache на все хосты с повышением прав, yaml чувствительный к пробелам
nano install_apache.yml
---
- hosts: all
become: true
tasks:
- name: install apache2 package
apt:
name: apache2
Запуск файла плейбук playbook install_apache.yml
ansible-playbook --ask-become-pass install_apache.yml
ok: [192.168.122.152]
TASK [install apache2 package] ***********************************************************************
changed: [192.168.122.152]
changed: [192.168.122.218]
changed: [192.168.122.202]
PLAY RECAP *******************************************************************************************
192.168.122.152 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.122.202 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.122.218 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
changed=1 что-то изменилось на хосте ; unreachable=0 сервер доступен, skipped=0 не пропущено,rescued=0 запускалась ли резервная задача, ignored=0 не игнорировалась задача
Добавим новую задачу — обновить репозитории пакетов на хостах
---
- hosts: all
become: true
tasks:
- name: update repository index
apt:
update_cache: yes
- name: install apache2 package
apt:
name: apache2
Проверка синтаксиса файла ansible yml и повторынй запуск сценария
ansible-playbook --syntax-check install_apache.yml
ansible-playbook --ask-become-pass install_apache.yml
TASK [update repository index] ***********************************************************************
ok: [192.168.122.202]
ok: [192.168.122.218]
ok: [192.168.122.152]
TASK [install apache2 package] ***********************************************************************
ok: [192.168.122.152]
ok: [192.168.122.218]
ok: [192.168.122.202]
Добавим установка дополнительного пакета php for apache последней версии в playbook yml
---
- hosts: all
become: true
tasks:
- name: update repository index
apt:
update_cache: yes
- name: install apache2 package
apt:
name: apache2
state: latest
- name: add php support for apache
apt:
name: libapache2-mod-php
state: latest
TASK [add php support for apache] ********************************************************************
changed: [192.168.122.218]
changed: [192.168.122.152]
changed: [192.168.122.202]
Удалене пакета используя ansible playbook yml
nano remove_apache.yml
---
- hosts: all
become: true
tasks:
- name: remove apache2 package
apt:
name: apache2
state: absent
- name: remove php support for apache
apt:
name: libapache2-mod-php
state: absent
Сообщение Ansible первые базовые шаги Уроки Linux ч.1 появились сначала на Blog of 5house.
]]>Сообщение Установка расширения (плагина) из файла для chrome появились сначала на Blog of 5house.
]]>
2)Включите Режим разработчика (Developer mode) в правом верхнем углу.

3)Найдите нужное расширение и нажмите Упаковать расширение (Pack extension) или просто скопируйте его папку из директории профиля Chrome (например, %LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\ на Windows)


Упаковать расширение
Выберите корневой каталог упаковываемого расширения. Для обновления расширения также укажите закрытый ключ.
Корневой каталог расширения
Файл секретного ключа (необязательно)

Пути установки расширений в профиле конкретного пользователя ОС
chrome://version/
Путь к профилю
Windows 10\11:
C:\Users\admin\AppData\Local\Yandex\YandexBrowser\User Data\Default\Extensions\cdjkkeofanojcdolaakkckkmfcjejlij\
C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\Extensions\cdjkkeofanojcdolaakkckkmfcjejlij\
C:\Users\admin\AppData\Local\Chromium\User Data\Default\Extensions\cdjkkeofanojcdolaakkckkmfcjejlij
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\
Linux:
/home/andrey/.config/chromium/Default/Extensions
macOS:
~/Library/Application Support/Google/Chrome/Default/Extensions/
4)Чтобы установить такое расширение на другом ПК, используйте кнопку Загрузить распакованное расширение (Load unpacked) в режиме разработчика (перенести в окно браузера). Файлы .crx совместимы с windows и linux

Ошибка Это расширение могло быть повреждено
в браузере Google Chrome означает, что браузер отключает расширение из-за нарушения в файлах. Это предупреждение может возникать при установке, изменении файлов расширения или работе с ним.

Настройка рабочего места для портала ЕИС Закупки — Центр клиентской поддержки КриптоПро
Установка расширения для плагина из файла — Центр клиентской поддержки КриптоПро
Установка расширений в закрытом контуре — без интернета
Сообщение Установка расширения (плагина) из файла для chrome появились сначала на Blog of 5house.
]]>Сообщение Прекращение поддержки Office Project Visio 2016/2019 миграция и/или переход на 2021/2024/365 появились сначала на Blog of 5house.
]]>Поддержка Офис Office 2016 и Office 2019 завершится 14 октября 2025 г., и расширения и расширенных обновлений для системы безопасности не будет. Все приложения Office 2016 и Office 2019 будут продолжать работать. Тем не менее вы можете быть подвергнуты серьезным и потенциально опасным угрозам безопасности.
https://learn.microsoft.com/ru-ru/lifecycle/end-of-support/end-of-support-2025
Пробный период Office ,Visio , project 2021,2024
Для Retail 5 дней полного функционала, далее режим чтения
Для Volume 30 дней полного функционала, далее режим чтения
KMS даёт активацию лицензии на 180 дней, далее режим чтения
Типы изданий лицензий Microsoft office
| Версия | Retail (розничное) | Volume (корпоративное) | OEM (производственное) |
| Office 2016 | Home & Student, Home & Business, Professional | Standard, Professional Plus | Встроенное в ПК |
| Office 2019 | Home & Student, Home & Business, Professional | Standard, Professional Plus | Встроенное в ПК |
| Office 2024 LTSC | Home, Home & Business, Professional (одна покупка) | Standard LTSC, Professional Plus LTSC | Встроенное в ПК |
| Программа | Retail примеры | Volume примеры | OEM |
| Microsoft Project | Project Standard, Project Professional | Project Standard VL, Professional VL | Да, но редко |
| Microsoft Visio | Visio Standard, Visio Professional | Visio Professional VL | Нет |


1)Загрузите средство развертывания Office из Центра загрузки Microsoft. ODT https://www.microsoft.com/en-us/download/details.aspx?id=49117
2)admin cmd правка реестра
reg add "HKCU\Software\Microsoft\Office\16.0\Common\ExperimentConfigs\Ecs" /v "CountryCode" /t REG_SZ /d "std::wstring|US" /f
3)Подготовка файла конфигурации ответов configuration.xml https://learn.microsoft.com/en-us/office/ltsc/2024/deploy генератор https://config.office.com/deploymentsettings
<Configuration>
<Add OfficeClientEdition="64" Channel="PerpetualVL2024" PIDKEY="XJ2XN-FW8RK-P4HMP-DKDBV-GCVGB">
<Product ID="ProPlus2024Volume">
<Language ID="en-us" />
<Language ID="ru-ru" />
<ExcludeApp ID="Lync" />
</Product>
<Product ID="VisioPro2024Volume">
<Language ID="en-us" />
<Language ID="ru-ru" />
</Product>
<Product ID="ProjectPro2024Volume">
<Language ID="en-us" />
<Language ID="ru-ru" />
</Product>
</Add>
<Remove All="True" />
<RemoveMSI All="True" />
<!-- <Display Level="None" AcceptEULA="TRUE" /> -->
<!-- <Property Name="AUTOACTIVATE" Value="1" /> -->
</Configuration>
4)Загрузите установочные файлы корпоративный Office LTSC 2024 Download the Office LTSC Volume 2024 installation files , cmd размер примерно 3,65-5,50 ГБ
setup /download configuration.xml
5)Установите Office LTSC 2024 с помощью средства развертывания Office cmd в тихом режиме с удалением office visio project 2016 msi , время затраты от 15 мин
setup /configure configuration.xml

Дополнительное удаление старых версий Microsoft office через утилиту Microsoft Support and Recovery Assistant (Microsoft SaRA, https://aka.ms/SaRA-FirstScreen)
SaRAcmd.exe -S OfficeScrubScenario –AcceptEula -Officeversion All
Для активации или проверки подлинности узла KMS требуется собственный ключ, известный как ключ узла KMS. Этот ключ доступен в Центре администрирования Microsoft 365 для Open, Open Value, Select, Enterprise и соглашений о лицензировании поставщиков услуг. Вы можете получить помощь от локального центра активации Майкрософт. https://licensing.microsoft.com/
Корпоративные лицензии обычно поставляются с типом активации MAK или KMS.GVLK (Generic Volume License Key) – это универсальные корпоративные ключи, предустановленные в версиях Microsoft Project и Visio для активации через KMS. Для разных версий Project и Visio применяются отдельные GVLK-ключи, которые позволяют активировать корпоративные лицензированные версии с помощью KMS-сервера.
| Параметр | KMS | MAK |
| Тип активации | Серверная, внутренняя в корпоративной сети | Клиентская, индивидуальная |
| Частота обновления лицензии | Каждые 180 дней | Однократная с возможностью повторной |
| Зависимость от интернета | Не требуется при локальной активации | Требуется для подключения к серверам Microsoft |
| Масштаб | Массовая активация многих устройств | Подходит для меньшего количества устройств |
| Уровень контроля | Высокий, централизованный | Меньше контроля |
Как настроить KMS сервер в Active Directory на Windows Server
Install-WindowsFeature -Name VolumeActivation -IncludeAllSubFeature –IncludeManagementTools
https://learn.microsoft.com/en-us/office/volume-license-activation/gvlks
Настройка DNS для KMS сервера Microsoft — оснастка dnsmgmt.msc
Открыть оснастку DNS
Перейти: <имя сервера> -> Зоны прямого просмотра -> company.local
Нажать ПКМ на названии вашего домена и выбрать «Другие новые записи»
В списке «Выбор типа записи ресурса» найти: «Расположение службы (SRV)» и нажать «Добавить»
В поля вписать:
Служба: _vlmcs
Протокол: _tcp
Приоритет: 0
Вес: 0
Порт: 1688
Узел этой службы: <адрес вашего KMS сервера>
Нажать «Ок». Готово.

cmd найти сервер KMS используя DNS
nslookup -type=srv _vlmcs._tcp
Проверить статус активации Microsoft Office через командную строку (cmd) можно с помощью встроенного скрипта ospp.vbs
Перейти в каталог установки Office в зависимости от разрядности:
для 32-битной версии —
C:\Program Files (x86)\Microsoft Office\Office16
для 64-битной версии —
C:\Program Files\Microsoft Office\Office16
Выполнить команду:
cscript ospp.vbs /dstatus
Указать адрес KMS-сервера вручную. Например:
cscript ospp.vbs /sethst:kms01.5house.ru
Изменить номер порта на клиенте, если KMS-сервер запущен на нестандартном порту (отличном от TCP/1688):
cscript ospp.vbs /setprt:1689
Изменение ключа продукта на удаленном компьютере
cscript ospp.vbs /inpkey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx contoso1
Активировать установленную копию Microsoft Office на KMS-сервере. Для этого используется команда:
cscript ospp.vbs /act
Registry Settings for Volume Activation
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn502532(v=ws.11)
HKLM\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\KeyManagementServiceName = «kms01.5house.loc»
HKLM\Software\Microsoft\OfficeSoftwareProtectionPlatform\KeyManagementServiceName = «kms01.5house.loc»
Аудит учёт Лицензий Microsoft
как посчитать централизованно проскандировав локальную сеть уже установленные уже используемые лицензии по локальной сети windows office
Средство управления активацией корпоративных лицензий (VAMT) позволяет сетевым администраторам и другим ИТ-специалистам автоматизировать и централизованно управлять Windows, Office, а также выбирать другие процессы активации корпоративных и розничных продуктов Майкрософт. VAMT может управлять активацией корпоративных лицензий с помощью нескольких ключей активации (MAK) или службы управления ключами Windows (KMS). VAMT — это стандартная оснастка консоли управления Майкрософт (MMC), которую можно установить на любом компьютере с поддерживаемой версией ОС Windows.
Похожие Альтернативы Офис для Windows offline:
МойОфис Myoffice https://myoffice.ru/
Р7 Офс https://r7-office.ru
WPS Office https://ru.wps.com/
LibreOffice https://ru.libreoffice.org/
OpenOffice https://www.openoffice.org/ru/
SoftMaker FreeOffice https://www.freeoffice.com/ru/
OnlyOffice https://www.onlyoffice.com/ru
Polaris Office https://www.polarisoffice.com/ru/
LibreOffice Draw https://ru.libreoffice.org/
https://www.drawio.com/
DIA http://dia-installer.de
ProjectLibre — управления проектами.
Автограф – редактор деловой и технической графики
Асмограф АСМО – графический редактор (АСМОграф)
Сообщение Прекращение поддержки Office Project Visio 2016/2019 миграция и/или переход на 2021/2024/365 появились сначала на Blog of 5house.
]]>Сообщение Задаем программы по умолчанию в домене, с помощью GPO появились сначала на Blog of 5house.
]]>На тестовом компьютере выставляем программы по умолчанию
control /name Microsoft.DefaultPrograms /page pageDefaultProgram

Далее запускаем cmd или Windows Power Shell от имени администратора также на своем локальном ПК:
Dism.exe /online /Export-DefaultAppAssociations:C:\soft\DefaultBrowser.xml
Веб-браузер Яндекс — Yandex Browser по умолчанию пример DefaultBrowser.xml
<?xml version="1.0" encoding="UTF-8"?>
<DefaultAssociations>
<Association Identifier=".htm" ProgId="YandexHTML" ApplicationName="Yandex" />
<Association Identifier=".html" ProgId="YandexHTML" ApplicationName="Yandex" />
<Association Identifier=".url" ProgId="InternetShortcut" ApplicationName="Internet Browser" />
<Association Identifier="http" ProgId="YandexHTML" ApplicationName="Yandex" />
<Association Identifier="https" ProgId="YandexHTML" ApplicationName="Yandex" />
</DefaultAssociations>
Далее кладем полученный DefaultBrowser.xml файл например вот сюда:
\\5house.loc\SYSVOL\5house.loc\Policies{8575A0BA-D3FE-4B29-9217-E1A291B5EB7B}\Machine
Запускаем оснастку Управление групповой политикой gpmc.msc
В редакторе управления групповыми политиками перейдите в раздел Конфигурация компьютера > Политики > Административный шаблон > Компоненты Windows > Проводник и дважды щелкните Задать файл конфигурации ассоциаций по умолчанию.
In the Group Policy Management Editor, go to Computer Configuration > Policies > Administrative Template > Windows Components > File Explorer, and double-click Set a default associations configuration file.

После обновления политики перезагружаем ПК или набираем gpupdate /force в командной строке.
https://support.google.com/chrome/a/answer/7009292?hl=en
Проверка программы по умолчанию Далее запускаем cmd или Windows Power Shell от имени администратора DISM Default Application Association Servicing Command-Line Options
Dism /online /Get-DefaultAppAssociations
https://yandex.ru/support/browser-corporate/ru/deployment/windows/setting-policy
Настроить проверку браузера по умолчанию при запуске Яндекс Браузера Конфигурация компьютера\Политики\Административные шаблоны\Яндекс\Яндекс Браузер\Поведение
Computer Configuration\Policies\Administrative Templates\Yandex\Yandex Browser\Behavior DefaultBrowserSettingEnabled

Открыть страницу по адресу browser://policy
regedit.exe чтение пути Компьютер\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
«C:\Program Files\Yandex\YandexBrowser\Application\browser.exe» —make-default-browser
«C:\Program Files\Yandex\YandexBrowser\Application\browser.exe» —register-default
Open .URL files (Internet Shortcut) with any Browser via Right-click menu Открывайте файлы .URL (интернет-ярлыки) в любом браузере через контекстное меню.https://www.winhelponline.com/blog/open-url-shortcuts-different-browsers-right-click-menu/
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\InternetShortcut\shell\Open With]
"ExplorerCommandHandler"="{4ce6767d-e09b-45dc-831d-20c8b4ea9a26}"
[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.url\UserChoice]
[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Roaming\OpenWith\FileExts\.url\UserChoice]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Capabilities\FileAssociations]
".url"=-
отмена
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Classes\InternetShortcut\shell\Open With]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Capabilities\FileAssociations]
".url"="IE.AssocFile.URL"
Some browsers, such as Yandex browser, Google Chrome, open the URL file as a text file instead of opening the web address mentioned in the file. This is because they don’t include a .URL handler registered by default.
Некоторые браузеры, например Yandex browser, Google Chrome, открывают URL-файл как текстовый файл блокнот, а не веб-адрес, указанный в файле. Это связано с тем, что в них не зарегистрирован обработчик .URL по умолчанию.
Сообщение Задаем программы по умолчанию в домене, с помощью GPO появились сначала на Blog of 5house.
]]>Сообщение RedOS redadm Подсистема Управления reddc Служба каталогов появились сначала на Blog of 5house.
]]>Дистрибутивы скачивать по вашему ключу лицензии тут https://update-center.red-soft.ru/
Служба каталогов (СК) РЕД АДМ red adm предоставляет возможность центра-
лизованного хранения и управления ресурсами домена.
Тестовая среда таблица vm , продукту далеко до удобства Microsoft AD
| host | Cpu/ram/disk | ip | desc |
| adm | 4c/8gb/100gb | 192.168.10.253 | redadm-enterprise-2.0.0-1.red80.x86_64 |
| dc | 4c/6gb/70gb | 192.168.10.254 | reddc-2.0.0.red80.x86_64 |
| client | 2c/4gb/70gb | 192.168.10.250 | redos-8-20241206.4-Everything-x86_64-DVD1 |
| share | 2c/4g/100gb | 192.168.10.252 | redos-8-20241206.4-Everything-x86_64-DVD1 |
| nat | 192.168.10.1 | Gw LAN+internet |
1)Отключение SELinux
setenforce 0
2)Замените в файле конфигурации /etc/selinux/config режим enforcing на
permissive
sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
3)Присваивание серверу доменного имени
hostnamectl set-hostname dc1.5house.lan
4)Настройка сетевого интерфейса (По умолчанию сетевой интерфейс настроен для получения IP-адреса по DHCP)
nmtui
systemctl restart NetworkManager
ip a
5)Установка пакетов (выполните обновление всех пакетов:)
dnf makecache && dnf upgrade –y
6)Загрузите пакет reddc в удобный каталог /tmp и Выполните команду:
scp /home/red* andrey@192.168.10.1:/home
dnf install /tmp/reddc -y
7)Настройка Конфигурация контроллера домена через samba-tool
/opt/reddc/bin/samba-tool domain provision --auto \
--use-rfc2307 --backend-store=mdb --backend-store-size=20Gb \
--realm=5HOUSE.LAN --domain=5HOUSE --server-role=dc \
--dns-backend=BIND9_DLZ --adminpass=Password1 \
--time-protocol=ntp --time-servers="194.190.168.1,92.241.18.100,91.206.16.3"
9)Проверить статус служб
systemctl status reddc named
10)Сервис времени расскоментировать строчку в файле
nano /etc/chrony.conf
allow 192.168.0.0/16
1)Для добавления пользователя с именем your_user в группу wheel выполните
команду
usermod -a -G wheel your_user
2)Обновление системы
dnf makecache && dnf upgrade -y
reboot
3)Установка РЕД АДМ Сервер и зависимостей из интернета
dnf install -y redadm-enterprise-〈версия_пакета〉.rpm

4)DNS и синхронизация времени https://redos.red-soft.ru/base/redos-8_0/8_0-network/8_0-customize-dns/8_0-systemd-resolved/
cat /etc/resolv.conf
resolvectl status
nano /etc/systemd/resolved.conf
chronyc tracking
cat /etc/ntp.conf
5)Проверить статус служб
systemctl status redadm.service redis.service \
redadm-celery-worker.service redadm-celery-beat.service nginx.service
6)Вход в веб-интерфейс
http://〈IP-адрес(доменное_имя)_РЕД_АДМ〉:〈указанный_порт〉
http://192.168.10.253:80
7)Активация redadm — Введите лицензионный ключ

8)Первоначальная настройка, БД firebird

9)Подключить к существующему домену или развернуть новый домен

10)Параметры присоединения redadm к существующему домену

11)Первый вход в redadm под доменной учётно записью администратора

12)Главный интерфейс редадм redadm

13)Настройка сертификата шифрования httpS SSL для web, генерация демо сертификата /opt/redadm/config/ssl выполнить ./generate_DemoCA.sh

14)Настройте nginx в файле /etc/nginx/nginx.conf Для этого закомментируйте секцию [HTTP], Затем раскомментируйте секцию [HTTPS]

15)В файле конфигурации сервера /etc/redadm/server.conf укажите путь к сгене- рированному сертификату в поле CERT_PATH
16)В файле конфигурации клиента /etc/redadm/client.conf отредактируйте следу-
ющие параметры
PORT = 443
ENABLED_SECURE = True
SECURE_CERTIFICATE = 〈путь_к_сертификату_на_клиентской_машине〉
17)Перезапуск и проверка сервисов nginx redadm
nginx -t
systemctl restart redadm.service nginx.service
systemctl status redadm.service nginx.service
Сообщение RedOS redadm Подсистема Управления reddc Служба каталогов появились сначала на Blog of 5house.
]]>Сообщение АКТИВАЦИЯ Microsoft OFFICE на ноутбуках XIAOMI появились сначала на Blog of 5house.
]]>1)На примере Ноутбук Redmi Book 16 2025. где Windows 11 домашняя home Китайская с вкрапления Русского языка, уже полностью установлена. (Важно пока не переустанавливать ОС и компоненты) https://www.comss.ru/download/page.php?id=9234 https://rufus.ie/ru/ + драйвера https://www.mi.com/in/service/support/laptop-drivers.html или через proxy vpn https://www.mi.com/service/notebook/drivers?display=showall

2)Создаем или проверяем доступность учётной записи Microsoft https://account.microsoft.com/ login.live.com
3)Подключаем ноутбук к интернету и На ноутбуке входим в свою учётную запись Microsoft в Windows, Настройка -учётные записи — Другие пользователи (win + i)

4)Заходим в Windows на ноутбуке под учётной записью Microsoft ,а на сайте https://account.microsoft.com/ проверяем, что ваш ноутбук добавился к аккаунту может занят минут 5-10. (К учётной записи привязывается электронная активация из bios uefi Windows 10\11 которую можно переносить раз в 90 дней)

5)Запускаем из меню пуск любое приложение Microsoft office допустим Word

6)Может появиться окно пробного периода 5 дней — принятие лицензионного соглашения (Google translate),меняем в настройках интерфейс Microsoft Office на русский ru

7)Принимаем лицензию закрываем Microsoft Word, запускам заново ждём приглашения активации на Китайском и\или ввода учётной записи Microsoft (Office 365), иногда предлагает выбрать регион и язык для ms office иероглифы.

8)Проверка статуса активации Office 2024, 2021, 2019, 2016 и 365 переходи по одном из путей и запускаем команду cmd cscript ospp.vbs /dstatus
Office 32 бит (x86): cd "c:\Program Files (x86)\Microsoft Office\Office16"
Office 64 бит (x64 cd "C:\Program Files\Microsoft Office\Office16"

Пример пробного периода — без активации.
9)После успешной активации Microsoft office его лицензия появиться в личном кабинете Microsoft https://account.microsoft.com/ где можно скачать дистрибутив для установки для переустановки. https://files.rg-adguard.net/ пример Home2024Retail

Иногда для активации офиса требуется, его обновить через интернет.
Ручная Русификация mui языковые пакеты language accessoy pack https://support.microsoft.com/ru-ru/office/language-accessory-pack-%D0%B4%D0%BB%D1%8F-microsoft-365-82ee1236-0f9a-45ee-9c72-05b026ee809f
C 2022 года Microsoft блокирует загрузки установочных файлов Office C2R из своей CDN в РФ и Беларуси. Для обхода этого ограничения нужно перед установкой сбросить GeoID на компьютере:
$oldGeoID=(Get-WinHomeLocation).GeoId
Set-WinHomeLocation -GeoId 244
Remove-Item -Path HKCU:\SOFTWARE\Microsoft\Office\16.0\Common\Experiment -Recurse -Force -ErrorAction Ignore
Remove-Item -Path HKCU:\SOFTWARE\Microsoft\Office\16.0\Common\ExperimentConfigs -Recurse -Force -ErrorAction Ignore
Remove-Item -Path HKCU:\SOFTWARE\Microsoft\Office\16.0\Common\ExperimentEcs -Recurse -Force -ErrorAction Ignore
Запустите установку дополнительного языка Office с помощью ODT. После окончания установки, вернуть предыдущий GeoID:
Set-WinHomeLocation -GeoId $oldGeoID
1)Ставим Office 2024* home office, запускаем Office, и применяем Средство восстановления Office cssemerg97275 перезапуск Office
2)Ставим через Office Deployment Tool
3)Восстанавливаем ОС Windows 11 из образа mi recovery при наличии, для вашей модели
Делаем резервную копию драйверов в Windows 10/11 cmd admin
dism /online /export-driver /destination:C:\MyDrivers (где C:\MyDrivers папка для сохранения резервной копии драйверов, папка должна быть создана заранее вручную, например, командой md C:\MyDrivers)
https://www.mi.com/in/support/guidance/laptopdriver После чистой установки из оф.образа не будут работать тач и wi-fi. Поэтому мышка, и телефон на проводе, для доступа в интернет, желательны
Для входа в bios uefi нажимать после включения F2 ; выбор загрузочных носителей нажимать F12
В bios uefi можно сменить язык с Китайскго на English — на первом экране спускаемя вниз и перебираем нижний пункты в одном из них выбрать English ; bios language
Для настройки Secure Boot требуется установить пароль для supervizor — admin bios
Get-WindowsImage -ImagePath "e:\sources\install.wim" |select ImageName, ImageIndex
Чтобы установщик Windows игнорировал вшитую информацию о версии ОС в UEFI/BIOS, нужно создать текстовый файл ei.cfg в каталоге sources на вашей установочной USB флешке с текстом:
[EditionID]
[Channel]
Retail
https://github.com/Data-Name-ID/RedmiBook-Pro-14-2024
Свободные офисные пакеты https://ru.libreoffice.org/ https://ru.wps.com/
Частичная Замена для Xiaomi PC Manager — Mi Control Utility ; mi hot keys
ноутбук ксиоми редми бук 16
Законные способы просмотра ключей из BIOS/uefi cmd powershell
wmic path softwarelicensingservice get OA3xOriginalProductKey
Сообщение АКТИВАЦИЯ Microsoft OFFICE на ноутбуках XIAOMI появились сначала на Blog of 5house.
]]>Сообщение Подключение баз 1С 8 Пользователям с помощью AD/GPO появились сначала на Blog of 5house.
]]>Задача: Подключение к системе 1C ERP 2.0 с использованием Интернет-сервис списка баз.
Тихая базовая установка платформы 1С: Тонкий клиент на Windows:
setup.exe /q
msiexec /i "1CEnterprise 8 (x86-64).msi" /quiet TRANSFORMS=my_transform.mst DESIGNERALLCLIENTS=0 THINCLIENT=1 THINCLIENTFILE=0 SERVER=0 WEBSERVEREXT=0 CONFREPOSSERVER=0 SERVERCLIENT=0 CONVERTER77=0
https://v8.1c.ru/platforma/tonkiy-klient/#1
Запускаем программу «C:\Program Files\1cv8\common\1cestart.exe»
Необходимо отказаться от добавления информационной базы, нажав кнопку «Нет».

В списке баз необходимо нажать кнопку «Настройка» для открытия окна «Настройка диалога запуска»

В окне «Настройка диалога запуска» необходимо нажать зеленый плюс под надписью: «Адреса Интернет-сервисов и списки общих баз:» и в появившийся окне «Добавление ссылки» в строке «Интернет-сервис» вставить ссылки: https://1cerp2.5house.loc/pub_lst/ws, [регистро чувствительна] как показано на рисунке ниже,и нажать кнопку «OK»

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

Сохраняем файлы конфигурации, для дальнейшего распространения
Описание https://its.1c.ru/db/v8324doc/bookmark/adm/TI000000365
Конфигурация компьютера, настройка, Конфигурация Windows, Файлы
Исходный файл: \\dc1.5house.loc\soft\1C\1CEStart\1cestart.cfg
Конечный файл: C:\ProgramData\1C\1CEStart\1cestart.cfg
Суть метода в том, что платформа 1С при запуске считывает файл 1CEStart.cfg, переходит по ссылкам в этом файле на общий ресурс и получает всю необходимую информацию о базах данных.

Сначала проверяется, установлена ли 1С на компьютере


Дополнительно один раз прописываем настройки в профиль пользователя
%AppData%\Roaming\1C\1CEStart\

Добавляем ярлык 1С на рабочий стол Windows, исходный файл списка баз v8i лежит на общем файловом ресурсе. Распространение ярлыка пользователям ограничено (нацеливание на уровень элемента) доменной группой client-1c-erp1

Сообщение Подключение баз 1С 8 Пользователям с помощью AD/GPO появились сначала на Blog of 5house.
]]>