├── scripts ├── steps │ ├── rc.local │ ├── tmp.cache.conf │ ├── disable_repos.sh │ ├── setup_ssh │ ├── setup_agent │ ├── setup_sudo │ ├── setup_udev │ ├── setup_cloudinit │ ├── setup_network │ ├── setup_onebula │ ├── setup_ansible │ ├── setup_vagrant │ ├── rc.apt │ ├── setup_apt │ └── minimize ├── repos │ ├── yandex-mirror-8.2-x86_64.list │ ├── yandex-mirror-8.3-x86_64.list │ ├── yandex-mirror-9-x86_64.list │ ├── yandex-mirror-9.1-x86_64.list │ ├── yandex-mirror-sisyphus-x86_64.list │ └── yandex-mirror-8sp-x86_64.list ├── base.sh ├── prepare.sh ├── vm_setup └── minimize.sh ├── .gitignore ├── http ├── 8.2 │ ├── vm-profile.scm │ └── autoinstall.scm ├── vm-profile.scm ├── 9.1.1 │ ├── vm-profile.scm │ └── autoinstall.scm ├── repos │ ├── yandex-mirror-8.2-x86_64.list │ ├── yandex-mirror-8.3-x86_64.list │ ├── yandex-mirror-9-x86_64.list │ ├── yandex-mirror-9.1-x86_64.list │ ├── yandex-mirror-9.1.1-x86_64.list │ ├── yandex-mirror-sisyphus-x86_64.list │ └── yandex-mirror-8sp-x86_64.list ├── latecommand.sh ├── autoinstall.scm ├── prepare.sh ├── post-install.sh ├── redos.ks.cfg ├── astra-orel-1.12.29-Desktop.cfg ├── astra-orel-2.12.29-Desktop.cfg ├── astra-orel-2.12.40-Desktop.cfg ├── astra-orel-1.12.29-Minimal.cfg ├── astra-orel-2.12.42-1-Server.cfg ├── astra-orel-2.12.42-Server.cfg ├── astra-orel-2.12.42-Desktop.cfg └── pkg-groups.tar ├── ansible ├── templates │ ├── metadata.json.j2 │ ├── info.json.j2 │ └── Vagrantfile.j2 ├── vars │ ├── astra.yml │ ├── red.yml │ └── alt.yml ├── alt-generate.yml ├── files │ ├── 90-footer │ ├── 00-header │ └── 10-sysinfo ├── remove_unnessesary.yml ├── generate.yml └── OS │ ├── red.yml │ ├── astra.yml │ └── alt.yml ├── .github └── ISSUE_TEMPLATE │ ├── bug-md.md │ ├── bug-md-eng.md │ └── feature_request-md.md ├── .gitmessage ├── README.md ├── CHANGELOG.rst ├── config ├── redos-7.3-netinst.json ├── astra-common-1.12.29-netinst.json ├── astra-common-2.12.29-netinst.json ├── astra-common-2.12.40-netinst.json ├── astra-common-2.12.42-netinst.json ├── altlinux-k8workstation-9.1.1-netinst.json ├── altlinux-k8workstation-8.3-netinst.json └── altlinux-k8workstation-8.2-netinst.json ├── .gitchangelog.rc ├── README.ru.md ├── README.en.md ├── CODE_OF_CONDUCT.md └── ansible.cfg /scripts/steps/rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | /etc/rc.d/scripts/apt-cache-on-tmp 3 | -------------------------------------------------------------------------------- /scripts/steps/tmp.cache.conf: -------------------------------------------------------------------------------- 1 | Dir::Cache "/tmp/apt"; 2 | Dir::State::lists "/tmp/apt/lists/"; 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | packer_cache/ 2 | *.box 3 | .vagrant/ 4 | output/ 5 | output* 6 | data/ 7 | boxes/ 8 | gh-md-toc 9 | .idea/ 10 | -------------------------------------------------------------------------------- /scripts/steps/disable_repos.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | find /etc/apt/sources.list.d -name '*.list' -type f -exec sed -i 's/^\([^#].*\)$/#\1/' {} \; 4 | 5 | -------------------------------------------------------------------------------- /scripts/steps/setup_ssh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring SSH" 5 | rm -f /etc/openssh/ssh_host_* 6 | echo "SSH configured" 7 | 8 | -------------------------------------------------------------------------------- /http/8.2/vm-profile.scm: -------------------------------------------------------------------------------- 1 | ((workstation 2 | (title . "Setup for server") 3 | (action . trivial) 4 | (actiondata ("/" (size 101024 . #t) (fsim . "Ext2/3") (methods raid plain) )))) 5 | -------------------------------------------------------------------------------- /http/vm-profile.scm: -------------------------------------------------------------------------------- 1 | ((workstation 2 | (title . "Setup for server") 3 | (action . trivial) 4 | (actiondata ("/" (size 101024 . #t) (fsim . "Ext2/3") (methods raid plain) )))) 5 | -------------------------------------------------------------------------------- /ansible/templates/metadata.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "description": "{{ name_full }} - {{ version }} {{ type }}", 3 | "provider": "libvirt", 4 | "format": "qcow2", 5 | "virtual_size": 30 6 | } 7 | -------------------------------------------------------------------------------- /http/9.1.1/vm-profile.scm: -------------------------------------------------------------------------------- 1 | ((workstation 2 | (title . "Setup for server") 3 | (action . trivial) 4 | (actiondata ("/" (size 101024 . #t) (fsim . "Ext2/3") (methods raid plain) )))) 5 | -------------------------------------------------------------------------------- /ansible/templates/info.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "author" : "Stepan Illichevsky ()", 3 | "homepage" : "https://github.com/stillru/astralinux-packer-template", 4 | "tagert_version" : "{{version}}" 5 | } 6 | -------------------------------------------------------------------------------- /scripts/steps/setup_agent: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring root user" 5 | curl "http://${PACKER_HTTP_ADDR}/pubkeys/robot.pub" -o "/etc/openssh/authorized_keys/root" 6 | echo "Root user configured" 7 | 8 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-8.2-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64 classic 2 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64-i586 classic 3 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-8.3-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64 classic 2 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64-i586 classic 3 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-9-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64 classic 2 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64-i586 classic 3 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-9.1-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64 classic 2 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64-i586 classic 3 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/steps/setup_sudo: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring sudo" 5 | apt-get update 6 | apt-get -y install sudo 7 | sed -i 's|^.*\(WHEEL_USERS ALL=(ALL) NOPASSWD: ALL\)$|\1|' /etc/sudoers 8 | echo "sudo configured" 9 | 10 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-9.1.1-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64 classic 2 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64-i586 classic 3 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-sisyphus-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [alt] http://mirror.yandex.ru altlinux/Sisyphus/x86_64 classic 2 | rpm [alt] http://mirror.yandex.ru altlinux/Sisyphus/x86_64-i586 classic 3 | rpm [alt] http://mirror.yandex.ru altlinux/Sisyphus/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/repos/yandex-mirror-8.2-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64 classic 2 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64-i586 classic 3 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/repos/yandex-mirror-8.3-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64 classic 2 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/x86_64-i586 classic 3 | rpm [p8] http://mirror.yandex.ru altlinux/p8/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/repos/yandex-mirror-9-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64 classic 2 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64-i586 classic 3 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/repos/yandex-mirror-9.1-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64 classic 2 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/x86_64-i586 classic 3 | rpm [p9] http://mirror.yandex.ru altlinux/p9/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/steps/setup_udev: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring UDEV" 5 | mkdir -p "${HOME}/.ssh" 6 | curl "http://${PACKER_HTTP_ADDR}/scripts/81-net-hotplug.rules" -o "/etc/udev/rules.d/81-net-hotplug.rules" 7 | echo "UDEV configured" 8 | 9 | -------------------------------------------------------------------------------- /http/repos/yandex-mirror-8sp-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [cert8] http://mirror.yandex.ru altlinux/c8/branch/x86_64 classic 2 | rpm [cert8] http://mirror.yandex.ru altlinux/c8/branch/x86_64-i586 classic 3 | rpm [cert8] http://mirror.yandex.ru altlinux/c8/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/repos/yandex-mirror-sisyphus-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [alt] http://mirror.yandex.ru altlinux/Sisyphus/x86_64 classic 2 | rpm [alt] http://mirror.yandex.ru altlinux/Sisyphus/x86_64-i586 classic 3 | rpm [alt] http://mirror.yandex.ru altlinux/Sisyphus/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/repos/yandex-mirror-8sp-x86_64.list: -------------------------------------------------------------------------------- 1 | rpm [cert8] http://mirror.yandex.ru altlinux/c8/branch/x86_64 classic 2 | rpm [cert8] http://mirror.yandex.ru altlinux/c8/branch/x86_64-i586 classic 3 | rpm [cert8] http://mirror.yandex.ru altlinux/c8/branch/noarch classic 4 | 5 | -------------------------------------------------------------------------------- /scripts/steps/setup_cloudinit: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring cloud-init" 5 | mkdir -p /usr/lib/python2.7/site-packages/cloudinit/net 6 | cp -rf /tmp/etcnet.py /usr/lib/python2.7/site-packages/cloudinit/net/etcnet.py 7 | systemctl enable cloud-init 8 | echo "cloud-init configured" 9 | 10 | -------------------------------------------------------------------------------- /scripts/steps/setup_network: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring networking interfaces" 5 | ls /etc/net/ifaces 6 | rm -rf "/etc/net/ifaces/ens4" 7 | if test -e "/etc/net/options.d/50-ALTLinux-server"; then 8 | sed -i 's/ALLOW_UNKNOWN=off/ALLOW_UNKNOWN=yes/' /etc/net/options.d/50-ALTLinux-server 9 | fi 10 | 11 | echo "Networking interfaces configured" 12 | 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-md.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Проблема 3 | about: Описание бага 4 | title: "[BUG]" 5 | labels: bug 6 | assignees: 'stillru' 7 | 8 | --- 9 | 10 | **Чем вызвана проблема?** 11 | Четкое и краткое описание проблемы. 12 | 13 | **Какие файлы затронуты?** 14 | В каких файлах, по вашему мнению, может быть проблема. 15 | 16 | **Дополнительная информация** 17 | Любая дополнительная информация 18 | -------------------------------------------------------------------------------- /scripts/steps/setup_onebula: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring VM for OpenNebula" 5 | apt-get install -y opennebula-context 6 | apt-get install -y systemd-networkd 7 | apt-get remove -y etcnet 8 | rm -rf /etc/net 9 | systemctl enable one-context 10 | systemctl enable systemd-networkd 11 | ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules 12 | echo "VM configured for OpenNebula" 13 | 14 | -------------------------------------------------------------------------------- /ansible/templates/Vagrantfile.j2: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | # https://docs.vagrantup.com. 4 | ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt' 5 | 6 | Vagrant.configure(2) do |config| 7 | config.nfs.verify_installed = false 8 | config.vm.box = "{{ name_host }}-{{ version }}" 9 | config.disksize.size = "30GB" 10 | config.vm.synced_folder './', '/vagrant', disabled: true 11 | config.vm.provider :libvirt do |libvirt| 12 | libvirt.driver = "kvm" 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-md-eng.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug 3 | about: Bug description 4 | title: "[BUG][Eng]" 5 | labels: bug 6 | assignees: 'stillru' 7 | 8 | --- 9 | 10 | **What problem about?** 11 | Please describe your problem. Be as clear and concise as possible. 12 | 13 | **Wich files can be source of problem?** 14 | What files do you think the problem might be. Paste the link or file name from the repository. 15 | 16 | **Additional Information** 17 | Any additional information would be greatly appreciated. 18 | -------------------------------------------------------------------------------- /scripts/steps/setup_ansible: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Setup Ansible prerequisites in order to allow Ansible provisioning 3 | set -euo pipefail 4 | 5 | echo "Installing Ansible packages" 6 | 7 | # Python's stdlib JSON module was moved out of Python 2 standard 8 | # installation in ALT Platform 9 releases for some unimaginable reason. 9 | apt-get -y install 'python-modules-json' 10 | apt-get -y install 'python2.7(distutils)' 11 | apt-get -y install 'python-modules-json' 12 | 13 | echo "Ansible prerequisites installed" 14 | 15 | -------------------------------------------------------------------------------- /ansible/vars/astra.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: Desktop 3 | version: 2.12.42 4 | name_host: "astralinux-{{ type }}" 5 | name_full: "Astra Linux Orel" 6 | ansible_become_pass: vagrant 7 | vagrant_key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request-md.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Идея 3 | about: Идея для реализации 4 | title: "[Feature Request]" 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Ваше предложение относится к какой либо проблеме? Опишите пожалуйста.** 11 | Четкое и краткое описание проблемы. Пример: Я всегда расстраиваюсь, когда [...] 12 | 13 | **Опишите ваше предложение** 14 | Четкое и краткое описание того, что вы хотите сделать. 15 | 16 | **Опишите альтернативы, которые вы рассмотрели** 17 | Четкое и краткое описание всех рассмотренных вами альтернативных решений или функций. 18 | 19 | **Дополнительная информация** 20 | Любая дополнительная информация 21 | -------------------------------------------------------------------------------- /ansible/vars/red.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: Desktop 3 | version: 7.3 4 | name_host: "redos-{{ type }}" 5 | name_full: "RedOS 7.3 Desktop" 6 | ansible_become_pass: vagrant 7 | vagrant_key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" 8 | #ansible_become_method: su 9 | #ansible_become_user: root 10 | #ansible_become_exe: 'sudo -p "Password: " su -' 11 | -------------------------------------------------------------------------------- /ansible/vars/alt.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: Desktop 3 | version: 9.1.1 4 | name_host: "altlinux-{{ type }}" 5 | name_full: "AltLinux Kworkstation" 6 | ansible_become_pass: vagrant 7 | vagrant_key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" 8 | #ansible_become_method: su 9 | #ansible_become_user: root 10 | #ansible_become_exe: 'sudo -p "Password: " su -' 11 | -------------------------------------------------------------------------------- /scripts/steps/setup_vagrant: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | create_ps() { 5 | echo "Create PS for ${1}" 6 | cat << EOF >> ${1} 7 | if [[ \$UID == 0 ]] 8 | then 9 | PS1="[\[\033[1;32m\]${TARGET}\[\033[00m\]|\[\033[1;31m\]\u@\[\033[1;33m\]\h:\[\033[1;31m\]\w]# \[\033[00m\]" 10 | else 11 | PS1="[\[\033[1;32m\]${TARGET}\[\033[00m\]|\[\033[1;32m\]\u@\[\033[1;33m\]\h:\[\033[1;32m\]\w]$ \[\033[00m\]" 12 | fi 13 | EOF 14 | } 15 | 16 | echo "Configuring Vagrant user" 17 | mkdir -p /home/vagrant/.ssh 18 | curl "https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub" -o "/home/vagrant/.ssh/authorized_keys" 19 | chown -R vagrant:vagrant /home/vagrant 20 | 21 | create_ps /etc/bashrc 22 | 23 | echo "Vagrant user configured" 24 | 25 | -------------------------------------------------------------------------------- /http/latecommand.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mkdir -p --mode=0700 /home/vagrant/.ssh && curl -Lo /home/vagrant/.ssh/authorized_keys "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub" && chmod 0600 /home/vagrant/.ssh/authorized_keys && chown -R vagrant:vagrant /home/vagrant/.ssh 3 | mkdir -p --mode=0700 /root/.ssh && curl -Lo /root/.ssh/authorized_keys "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub" && chmod 0600 /root/.ssh/authorized_keys && chown -R root:root /root/.ssh 4 | sed -i "s/^#PermitRootLogin.*\$/PermitRootLogin prohibit-password/g" /etc/ssh/sshd_config 5 | sed -i "s/^#PasswordAuthentication.*\$/PasswordAuthentication yes/g" /etc/ssh/sshd_config 6 | apt-get -y remove linux-image-4.15*-hardened 7 | apt-get -y install linux-image-5.4*-generic 8 | cp /var/logs/syslog /root/syslog-install.log 9 | systemctl enable ssh 10 | -------------------------------------------------------------------------------- /scripts/steps/rc.apt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | create_apt_cache_dir() 4 | { 5 | local cache="$1" 6 | mkdir -p "$cache/archives/partial/" 7 | touch "$cache/archives/lock" 8 | chown :rpm -R "$cache" 9 | chmod 2770 "$cache" 10 | chmod 2770 "$cache/archives" 11 | chmod 2770 "$cache/archives/partial" 12 | chmod 2640 "$cache/archives/lock" 13 | } 14 | 15 | create_apt_lists_dir() 16 | { 17 | local lists="$1" 18 | mkdir -p "$lists/partial/" 19 | touch "$lists/lock" 20 | } 21 | 22 | cache_dir=$(apt-config dump |grep "^Dir::Cache .*;$"|sed 's/^Dir::Cache[[:space:]]*"\(.*\)";$/\1/') 23 | lists_dir=$(apt-config dump |grep "^Dir::State::lists .*;$"|sed 's/^Dir::State::lists[[:space:]]*"\(.*\)";$/\1/') 24 | 25 | create_apt_cache_dir "$cache_dir" 26 | create_apt_lists_dir "$lists_dir" 27 | 28 | -------------------------------------------------------------------------------- /scripts/steps/setup_apt: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | 4 | echo "Configuring APT" 5 | curl \ 6 | http://${PACKER_HTTP_ADDR}/repos/yandex-mirror-${TARGET_REPOS}-${ARCH}.list \ 7 | -o /etc/apt/sources.list.d/yandex-mirror-${TARGET_REPOS}-${ARCH}.list 8 | 9 | mv "/tmp/steps/rc.apt" "/etc/rc.d/scripts/apt-cache-on-tmp" 10 | mv "/tmp/steps/rc.local" "/etc/rc.d/rc.local" 11 | mv "/tmp/steps/tmp.cache.conf" "/etc/apt/apt.conf.d/tmp.cache.conf" 12 | /etc/rc.d/scripts/apt-cache-on-tmp 13 | apt-get clean 14 | apt-get -qy update 15 | apt-get -qy install gnupg 16 | apt-get -qy install apt rpm 17 | apt-get -qy dist-upgrade 18 | apt-get clean 19 | apt-get install -y qemu-guest-agent cloud-init udev-rule-generator-net 20 | systemctl unmask qemu-guest-agent 21 | systemctl enable qemu-guest-agent 22 | systemctl disable cloud-init 23 | rm -f "/etc/apt/sources.list.d/sources.installer.list" 24 | 25 | echo "APT configured" 26 | -------------------------------------------------------------------------------- /.gitmessage: -------------------------------------------------------------------------------- 1 | 2 | # KEEP A CHANGELOG 3 | # Format 4 | # ACTION: [AUDIENCE:] COMMIT_MSG [!TAG ...] 5 | # 6 | #ACTION 7 | # new: for new features, big improvement 8 | # chg: for refactor, small improvement, cosmetic changes... 9 | # fix: for bug fixes 10 | # 11 | #AUDIENCE 12 | # dev: for developpers (API changes, refactors...) 13 | # usr: or user: for final users (UI changes) 14 | # pkg: packaging changes 15 | # test: test only related changes 16 | # doc: doc only changes 17 | # 18 | #TAG 19 | #!refactor for refactoring code only 20 | #!minor for a very meaningless change (a typo, adding a comment) 21 | #!cosmetic for cosmetic driven change (re-indentation, 80-col...) 22 | #!wip for partial functionality but complete subfunctionality 23 | # 24 | #Examples de message 25 | # new: usr: support of bazaar implemented 26 | # chg: re-indentend some lines !cosmetic 27 | # fix: pkg: updated year of licence coverage. 28 | # new: test: added a bunch of test around user usability of feature X. 29 | # fix: typo in spelling my name in comment. !minor 30 | -------------------------------------------------------------------------------- /ansible/alt-generate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # generate some files for vagrant 3 | - name: Generate some files for vagrant & provisioning 4 | hosts: default 5 | gather_facts: no 6 | vars_files: 7 | - vars/alt_vars.yml 8 | pre_tasks: 9 | - name: Install python for Ansible 10 | raw: test -e /usr/bin/python || (apt-get -y update && apt-get install -y python3 python3-json) 11 | become: true 12 | changed_when: False 13 | tasks: 14 | - name: Generate info 15 | delegate_to: localhost 16 | template: 17 | src: "templates/info.json.j2" 18 | dest: "../data/info.json" 19 | 20 | - name: Generate metadata 21 | delegate_to: localhost 22 | template: 23 | src: "templates/metadata.json.j2" 24 | dest: "../data/metadata.json" 25 | 26 | - name: Generate Vgarantfile 27 | delegate_to: localhost 28 | template: 29 | src: "templates/Vagrantfile.j2" 30 | dest: "../data/Vagrantfile" 31 | 32 | # - name: Enable ssh 33 | # become: true 34 | # service: 35 | # name: sshd 36 | # enabled: yes 37 | # state: started 38 | -------------------------------------------------------------------------------- /http/autoinstall.scm: -------------------------------------------------------------------------------- 1 | ("/sysconfig-base/language" action "write" lang ("en_US")) 2 | ("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle") 3 | ("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t) 4 | 5 | ("/evms/control" action "write" control open installer #t) 6 | ("/evms/control" action "write" control update) 7 | ("/evms/profiles/workstation" action apply commit #f clearall #t exclude ()) 8 | ("/evms/control" action "write" control commit) 9 | ("/evms/control" action "write" control close) 10 | 11 | ("pkg-init" action "write") 12 | ("/pkg-install" action "write" lists "" auto #t) 13 | ("/preinstall" action "write") 14 | ("/net-eth" action "write" reset #t) 15 | ("/net-eth" action "write" name "eth0" ipv "4" configuration "dhcp" search "" dns "" computer_name "altbuild" ipv_enabled #t) 16 | ("/net-eth" action "write" commit #t) 17 | 18 | ("/root/change_password" language ("en_US") passwd_1 "vagrant" passwd_2 "vagrant") 19 | ("/users/create_account" new_name "vagrant" gecos "" allow_su #t auto #f passwd_1 "vagrant" passwd_2 "vagrant") 20 | ("/grub" action "write" language ("en_US") device "/dev/vda") 21 | -------------------------------------------------------------------------------- /http/8.2/autoinstall.scm: -------------------------------------------------------------------------------- 1 | ("/sysconfig-base/language" action "write" lang ("en_US")) 2 | ("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle") 3 | ("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t) 4 | 5 | ("/evms/control" action "write" control open installer #t) 6 | ("/evms/control" action "write" control update) 7 | ("/evms/profiles/workstation" action apply commit #f clearall #t exclude ()) 8 | ("/evms/control" action "write" control commit) 9 | ("/evms/control" action "write" control close) 10 | 11 | ("pkg-init" action "write") 12 | ("/pkg-install" action "write" lists "" auto #t) 13 | ("/preinstall" action "write") 14 | ("/net-eth" action "write" reset #t) 15 | ("/net-eth" action "write" name "eth0" ipv "4" configuration "dhcp" search "" dns "" computer_name "altbuild" ipv_enabled #t) 16 | ("/net-eth" action "write" commit #t) 17 | 18 | ("/root/change_password" language ("en_US") passwd_1 "vagrant" passwd_2 "vagrant") 19 | ("/users/create_account" new_name "vagrant" gecos "" allow_su #t auto #f passwd_1 "vagrant" passwd_2 "vagrant") 20 | ("/grub" action "write" language ("en_US") device "/dev/vda") 21 | -------------------------------------------------------------------------------- /http/9.1.1/autoinstall.scm: -------------------------------------------------------------------------------- 1 | ("/sysconfig-base/language" action "write" lang ("en_US")) 2 | ("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle") 3 | ("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t) 4 | 5 | ("/evms/control" action "write" control open installer #t) 6 | ("/evms/control" action "write" control update) 7 | ("/evms/profiles/workstation" action apply commit #f clearall #t exclude ()) 8 | ("/evms/control" action "write" control commit) 9 | ("/evms/control" action "write" control close) 10 | 11 | ("pkg-init" action "write") 12 | ("/pkg-install" action "write" lists "" auto #t) 13 | ("/preinstall" action "write") 14 | ("/net-eth" action "write" reset #t) 15 | ("/net-eth" action "write" name "eth0" ipv "4" configuration "dhcp" search "" dns "" computer_name "altbuild" ipv_enabled #t) 16 | ("/net-eth" action "write" commit #t) 17 | 18 | ("/root/change_password" language ("en_US") passwd_1 "vagrant" passwd_2 "vagrant") 19 | ("/users/create_account" new_name "vagrant" gecos "" allow_su #t auto #f passwd_1 "vagrant" passwd_2 "vagrant") 20 | ("/grub" action "write" language ("en_US") device "/dev/vda") 21 | -------------------------------------------------------------------------------- /ansible/files/90-footer: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # 99-footer - write the admin's footer to the MOTD 4 | # Copyright (c) 2013 Nick Charlton 5 | # Copyright (c) 2009-2010 Canonical Ltd. 6 | # 7 | # Authors: Nick Charlton &amp;amp;lt;hello@nickcharlton.net&amp;amp;gt; 8 | # Dustin Kirkland &amp;amp;lt;kirkland@canonical.com&amp;amp;gt; 9 | # 10 | # This program is free software; you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation; either version 2 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # This program is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more details. 19 | # 20 | # You should have received a copy of the GNU General Public License along 21 | # with this program; if not, write to the Free Software Foundation, Inc., 22 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 23 | 24 | [ -f /etc/motd.tail ] ; cat /etc/motd.tail || true 25 | -------------------------------------------------------------------------------- /ansible/files/00-header: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # 00-header - create the header of the MOTD 4 | # Copyright (c) 2013 Nick Charlton 5 | # Copyright (c) 2009-2010 Canonical Ltd. 6 | # 7 | # Authors: Nick Charlton &amp;amp;lt;hello@nickcharlton.net&amp;amp;gt; 8 | # Dustin Kirkland &amp;amp;lt;kirkland@canonical.com&amp;amp;gt; 9 | # 10 | # This program is free software; you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation; either version 2 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # This program is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more details. 19 | # 20 | # You should have received a copy of the GNU General Public License along 21 | # with this program; if not, write to the Free Software Foundation, Inc., 22 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 23 | 24 | #[ -r /etc/lsb-release ] ; /etc/lsb-release 25 | 26 | if [ -z "$DISTRIB_DESCRIPTION" ] ; [ -x /usr/bin/lsb_release ]; then 27 | # Fall back to using the very slow lsb_release utility 28 | DISTRIB_DESCRIPTION=$(lsb_release -s -d) 29 | fi 30 | 31 | printf "\n" 32 | 33 | printf "Welcome to %s (%s).\n" "$DISTRIB_DESCRIPTION" "$(uname -r)" 34 | printf "\n" 35 | -------------------------------------------------------------------------------- /scripts/base.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -ex 2 | 3 | cat < /home/vagrant/root 4 | #!/bin/bash 5 | test -d /etc/sudoers.d && echo "vagrant ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vagrant && chmod 0400 /etc/sudoers.d/vagrant 6 | test -d /etc/sudo.d && echo "vagrant ALL=(ALL) NOPASSWD:ALL" > /etc/sudo.d/vagrant && chmod 0400 /etc/sudo.d/vagrant 7 | EOF 8 | chmod +x root 9 | 10 | cat < /home/vagrant/su 11 | #!/bin/expect 12 | set timeout 20 13 | spawn su -l -c /home/vagrant/root 14 | expect "Password:" 15 | send "vagrant\r" 16 | expect eof 17 | EOF 18 | 19 | chmod +x /home/vagrant/su 20 | /home/vagrant/su 21 | 22 | sudo sed -i 's|.*PermitRootLogin.*|PermitRootLogin yes|g' /etc/openssh/sshd_config 23 | sudo service sshd reload 24 | 25 | sudo apt-get update 26 | sudo apt-get -y dist-upgrade 27 | sudo update-kernel -f -t el-smp 28 | sudo apt-get install -y openssl-engines 29 | sudo apt-get install -y kernel-modules-kvm-el-smp 30 | 31 | sudo grep -q '^openssl_conf' /etc/openssl/openssl.cnf || sudo sed -i '1iopenssl_conf = openssl_def' /etc/openssl/openssl.cnf 32 | sudo tee -a /etc/openssl/openssl.cnf < /etc/sudoers.d/vagrant && chmod 0400 /etc/sudoers.d/vagrant" 5 | echo "vagrant" | /bin/sh -i /bin/su -P - --command "test -d /etc/sudo.d && echo vagrant ALL=(ALL) NOPASSWD:ALL > /etc/sudo.d/vagrant && chmod 0400 /etc/sudo.d/vagrant" 6 | echo Configure sshd... 7 | #sed -i 's|.*PermitRootLogin.*|PermitRootLogin yes|g' /etc/openssh/sshd_config 8 | echo "Update distribution..." 9 | sudo apt-get update 10 | sudo apt-get -y dist-upgrade 11 | sudo update-kernel -f -t el-smp 12 | sudo apt-get install -y openssl-engines 13 | sudo apt-get install -y kernel-modules-kvm-el-smp 14 | sudo apt-get install -y qemu-guest-agent 15 | sudo systemctl start qemu-guest-agent 16 | echo "Enable ntpd..." 17 | sudo chkconfig ntpd on 18 | sudo apt-get install -y tzdata 19 | echo "Configure ssh keys for vagrant..." 20 | # Add a ssh config folder and authorized_keys file 21 | mkdir /home/vagrant/.ssh 22 | touch /home/vagrant/.ssh/authorized_keys 23 | # Set owner and permissions 24 | chmod 0700 /home/vagrant/.ssh 25 | chmod 0600 /home/vagrant/.ssh/authorized_keys 26 | # Add the insecure public key, see https://github.com/mitchellh/vagrant/tree/master/keys 27 | curl 'https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub' >> /home/vagrant/.ssh/authorized_keys 28 | chown -R vagrant /home/vagrant/.ssh 29 | echo "Finish!" 30 | exit 31 | sudo service sshd reload 32 | -------------------------------------------------------------------------------- /ansible/remove_unnessesary.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Remove most packages from tasksel Fly Desktop 3 | - name: 'Provision Image' 4 | hosts: default 5 | become: true 6 | pre_tasks: 7 | - name: Install python for Ansible 8 | raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) 9 | changed_when: False 10 | tasks: 11 | - name: Remove Packages 12 | package: 13 | name: '{{ item }}' 14 | state: absent 15 | loop: 16 | - libmtp-runtime 17 | - qt4-doc-html 18 | - wxmaxima 19 | - inkscape 20 | - synaptic 21 | - jag 22 | - fly-all-optional 23 | - blender 24 | - swfdec-mozilla 25 | - maxima 26 | - qmmp 27 | - linux-image-4.15.3-2-hardened 28 | 29 | - name: Autoclean 30 | apt: 31 | autoremove: true 32 | 33 | - name: Install Kernel 34 | package: 35 | name: '{{ item }}' 36 | state: present 37 | loop: 38 | - linux-image-5.2* 39 | 40 | - name: Change console PS for Debian family OS 41 | blockinfile: 42 | path: '{{ item }}' 43 | block: | 44 | REGION='{{ ansible_date_time.date }}' 45 | if [[ $(id -u) -eq 0 ]]; 46 | then 47 | PS1="[\[\033[1;32m\]$REGION\[\033[00m\]|\[\033[1;31m\]\u@\[\033[1;33m\]\h:\[\033[1;31m\]\w]# \[\033[00m\]" 48 | else 49 | PS1="[\[\033[1;32m\]$REGION\[\033[00m\]|\[\033[1;32m\]\u@\[\033[1;33m\]\h:\[\033[1;32m\]\w]$ \[\033[00m\]" 50 | fi 51 | loop: 52 | - /etc/bash.bashrc 53 | -------------------------------------------------------------------------------- /ansible/generate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # generate some files for vagrant 3 | - name: Generate some files for vagrant & provisioning 4 | hosts: default 5 | #vars_files: 6 | # - vars/vars.yml 7 | #pre_tasks: 8 | # - name: Install python for Ansible 9 | # raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) 10 | # changed_when: False 11 | tasks: 12 | # - name: Include vars for AltLinux 13 | # include_vars: 14 | # - vars/alt.yml 15 | # when: ansible_facts['distribution']|lower == "altlinux" 16 | 17 | - name: Import tasks for AltLinux 18 | import_tasks: OS/alt.yml 19 | when: ansible_facts['distribution']|lower == "altlinux" 20 | 21 | # - name: Include vars for RedOS 22 | # include_vars: 23 | # - vars/red.yml 24 | # when: ansible_facts['distribution']|lower == "red" 25 | 26 | - name: Import tasks for RedOS 27 | import_tasks: OS/red.yml 28 | when: ansible_facts['distribution']|lower == "red" 29 | 30 | - name: Import tasks for AstraLinux 31 | import_tasks: OS/astra.yml 32 | when: ansible_facts['distribution'] == "Astra Linux (Orel)" 33 | 34 | - name: Generate info 35 | delegate_to: localhost 36 | template: 37 | src: "templates/info.json.j2" 38 | dest: "../data/info.json" 39 | 40 | - name: Generate metadata 41 | delegate_to: localhost 42 | template: 43 | src: "templates/metadata.json.j2" 44 | dest: "../data/metadata.json" 45 | 46 | - name: Generate Vgarantfile 47 | delegate_to: localhost 48 | template: 49 | src: "templates/Vagrantfile.j2" 50 | dest: "../data/Vagrantfile" 51 | -------------------------------------------------------------------------------- /scripts/vm_setup: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Script to initiate VM configuration process 3 | set -euo pipefail 4 | 5 | STEP_DIR="${STEP_DIR:-/tmp/steps}" 6 | TARGET="${TARGET:-alt-server}" 7 | VM_TYPE="${VM_TYPE:-qemu}" 8 | SSH_USER="${SSH_USER:-vagrant}" 9 | TARGET_REPOS="${TARGET_REPOS:-sisyphus}" 10 | ARCH="${ARCH:-x86_64}" 11 | CLOUDINIT="${CLOUDINIT:-0}" 12 | SISYPHUS="${SISYPHUS:-0}" 13 | ROOT_PASS="${ROOT_PASS:-vagrant}" 14 | PASS="${PASS:-vagrant}" 15 | 16 | if test "${SISYPHUS}" == "1"; then 17 | TARGET_REPOS=sisyphus 18 | fi 19 | 20 | show_vars() { 21 | echo "Building box: ${TARGET}" 22 | echo "Steps are located in: ${STEP_DIR}" 23 | echo "Building box for VM type: ${VM_TYPE}" 24 | echo "Operating from user: ${SSH_USER}" 25 | echo "Targeting repos for: ${TARGET_REPOS}" 26 | echo "Targeting repos for architecture: ${ARCH}" 27 | echo "Enable cloud-init: ${CLOUDINIT}" 28 | echo "Update to Sisyphus: ${SISYPHUS}" 29 | } 30 | 31 | sudo_step() { 32 | script_name="${1}" 33 | 34 | echo "STEP: ${script_name}" 35 | sudo -E sh -c "${script_name}" 36 | } 37 | 38 | main() { 39 | echo "STEP: setup_sudo" 40 | { sleep 2 ; echo "${ROOT_PASS}" ; } | script -q -c "su -c ${STEP_DIR}/setup_sudo" /dev/null 41 | 42 | sudo_step "${STEP_DIR}/disable_repos.sh" 43 | 44 | sudo_step "${STEP_DIR}/setup_apt" 45 | 46 | sudo_step "${STEP_DIR}/setup_vagrant" 47 | 48 | if test "${VM_TYPE}" == "qemu"; then 49 | sudo_step "${STEP_DIR}/setup_agent" 50 | fi 51 | 52 | sudo_step "${STEP_DIR}/setup_udev" 53 | 54 | if test "${VM_TYPE}" == "qemu"; then 55 | sudo_step "${STEP_DIR}/setup_network" 56 | fi 57 | 58 | sudo_step "${STEP_DIR}/setup_ssh" 59 | sudo_step "${STEP_DIR}/setup_ansible" 60 | sudo_step "${STEP_DIR}/minimize" 61 | } 62 | 63 | show_vars 64 | main 65 | -------------------------------------------------------------------------------- /ansible/files/10-sysinfo: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # 10-sysinfo - generate the system information 4 | # Copyright (c) 2013 Nick Charlton 5 | # 6 | # Authors: Nick Charlton &amp;amp;lt;hello@nickcharlton.net&amp;amp;gt; 7 | # 8 | # This program is free software; you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation; either version 2 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License along 19 | # with this program; if not, write to the Free Software Foundation, Inc., 20 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | 22 | date=`date` 23 | load=`cat /proc/loadavg | awk '{print $1}'` 24 | root_usage=`df -h / | awk '/\// {print $(NF-1)}'` 25 | memory_usage=`free -m | awk '/Mem:/ { total=$2; used=$3 } END { printf("%3.1f%%", used/total*100)}'` 26 | 27 | swap_usage=`free -m | awk '/Swap/ { printf("%3.1f%%", $3/$2*100) }'` 28 | users=`users | wc -w` 29 | time=`uptime | grep -ohe 'up .*' | sed 's/,/\ hours/g' | awk '{ printf $2" "$3 }'` 30 | processes=`ps aux | wc -l` 31 | ip=`hostname -I | awk '{print $1}'` 32 | 33 | echo "System information as of: $date" 34 | echo 35 | printf "System Load:\t%s\tIP Address:\t%s\n" $load $ip 36 | printf "Memory Usage:\t%s\tSystem Uptime:\t%s\n" $memory_usage "$time" 37 | printf "Usage On /:\t%s\tSwap Usage:\t%s\n" $root_usage $swap_usage 38 | printf "Local Users:\t%s\tProcesses:\t%s\n" $users $processes 39 | echo 40 | -------------------------------------------------------------------------------- /http/prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | echo "Generate sudo configuration..." 4 | #cat < /home/vagrant/root 5 | #!/bin/bash 6 | test -d /etc/sudoers.d && echo "vagrant ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vagrant && chmod 0400 /etc/sudoers.d/vagrant 7 | test -d /etc/sudo.d && echo "vagrant ALL=(ALL) NOPASSWD:ALL" > /etc/sudo.d/vagrant && chmod 0400 /etc/sudo.d/vagrant 8 | #EOF 9 | #chmod +x root 10 | #cat /home/vagrant/root 11 | echo "Generate su script..." 12 | #cat < /home/vagrant/su 13 | #!/bin/bash 14 | 15 | #/usr/bin/expect <> /home/vagrant/.ssh/authorized_keys 52 | echo "Finish!" 53 | exit 54 | -------------------------------------------------------------------------------- /http/post-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | echo "Generate sudo configuration..." 4 | #cat < /home/vagrant/root 5 | #!/bin/bash 6 | test -d /etc/sudoers.d && echo "vagrant ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vagrant && chmod 0400 /etc/sudoers.d/vagrant 7 | test -d /etc/sudo.d && echo "vagrant ALL=(ALL) NOPASSWD:ALL" > /etc/sudo.d/vagrant && chmod 0400 /etc/sudo.d/vagrant 8 | #EOF 9 | #chmod +x root 10 | #cat /home/vagrant/root 11 | echo "Generate su script..." 12 | #cat < /home/vagrant/su 13 | #!/bin/bash 14 | 15 | #/usr/bin/expect <> /home/vagrant/.ssh/authorized_keys 52 | echo "Finish!" 53 | exit 54 | -------------------------------------------------------------------------------- /scripts/minimize.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -eux 2 | #Copyright 2020, Stepan Illichevsky () 3 | #Copyright 2012-2014, Chef Software, Inc. () 4 | #Copyright 2011-2012, Tim Dysinger () 5 | 6 | #Licensed under the Apache License, Version 2.0 (the "License"); 7 | #you may not use this file except in compliance with the License. 8 | #You may obtain a copy of the License at 9 | 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | 12 | #Unless required by applicable law or agreed to in writing, software 13 | #distributed under the License is distributed on an "AS IS" BASIS, 14 | #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | #See the License for the specific language governing permissions and 16 | #limitations under the License. 17 | 18 | #apt-get --yes clean 19 | 20 | echo "Clean empty space" 21 | unset HISTFILE 22 | rm -f /root/.bash_history 23 | rm -f /home/vagrant/.bash_history 24 | find /var/log -type f | while read f; do echo -ne '' > $f; done; 25 | 26 | echo "Whiteout root" 27 | count=`df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}'`; 28 | let count-- 29 | dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count; 30 | rm /tmp/whitespace; 31 | sync 32 | echo "Whiteout /boot" 33 | count=`df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}'`; 34 | let count-- 35 | dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count; 36 | rm /boot/whitespace; 37 | sync 38 | #echo "Clean swap" 39 | #swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'` 40 | #swapoff $swappart; 41 | #dd if=/dev/zero of=$swappart; 42 | #mkswap $swappart; 43 | #swapon $swappart; 44 | #sync 45 | echo "Fill filesystem with 0 to reduce box size" 46 | dd if=/dev/zero of=/EMPTY bs=1M 47 | rm -f /EMPTY 48 | 49 | # Block until the empty file has been removed, otherwise, Packer 50 | # will try to kill the box while the disk is still full and that's bad 51 | sync 52 | sleep 60 53 | echo "Time to kill vm" 54 | #systemctl poweroff 55 | -------------------------------------------------------------------------------- /scripts/steps/minimize: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -euo pipefail 3 | #Copyright 2020, Stepan Illichevsky () 4 | #Copyright 2012-2014, Chef Software, Inc. () 5 | #Copyright 2011-2012, Tim Dysinger () 6 | 7 | #Licensed under the Apache License, Version 2.0 (the "License"); 8 | #you may not use this file except in compliance with the License. 9 | #You may obtain a copy of the License at 10 | 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | #Unless required by applicable law or agreed to in writing, software 14 | #distributed under the License is distributed on an "AS IS" BASIS, 15 | #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | #See the License for the specific language governing permissions and 17 | #limitations under the License. 18 | 19 | apt-get --yes clean 20 | 21 | echo "Clean empty space" 22 | unset HISTFILE 23 | rm -f /root/.bash_history 24 | rm -f /home/vagrant/.bash_history 25 | find /var/log -type f | while read f; do echo -ne '' > $f; done; 26 | 27 | echo "Whiteout root" 28 | count=`df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}'`; 29 | let count-- 30 | dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count; 31 | rm /tmp/whitespace; 32 | sync 33 | echo "Whiteout /boot" 34 | count=`df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}'`; 35 | let count-- 36 | dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count; 37 | rm /boot/whitespace; 38 | sync 39 | #echo "Clean swap" 40 | #swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'` 41 | #swapoff $swappart; 42 | #dd if=/dev/zero of=$swappart; 43 | #mkswap $swappart; 44 | #swapon $swappart; 45 | #sync 46 | echo "Fill filesystem with 0 to reduce box size" 47 | count=`df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}'`; 48 | let count-- 49 | dd if=/dev/zero of=/EMPTY bs=1024 count=$count; 50 | rm -f /EMPTY; 51 | 52 | # Block until the empty file has been removed, otherwise, Packer 53 | # will try to kill the box while the disk is still full and that's bad 54 | sync 55 | echo "Time to kill vm" 56 | #systemctl poweroff 57 | -------------------------------------------------------------------------------- /ansible/OS/red.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Include vars for RedOS 3 | include_vars: 4 | file: vars/red.yml 5 | 6 | - name: Generate prompt 7 | become: true 8 | blockinfile: 9 | path: "{{ item }}" 10 | marker: "#{mark} ANSIBLE MANAGED BLOCK" 11 | block: | 12 | if [[ $UID == 0 ]] 13 | then 14 | PS1="[\[\033[1;32m\]{{ version }}\[\033[00m\]|\[\033[1;31m\]\u@\[\033[1;33m\]\h:\[\033[1;31m\]\w]# \[\033[00m\]" 15 | else 16 | PS1="[\[\033[1;32m\]{{ version }}\[\033[00m\]|\[\033[1;32m\]\u@\[\033[1;33m\]\h:\[\033[1;32m\]\w]$ \[\033[00m\]" 17 | fi 18 | loop: 19 | - /etc/bashrc 20 | - /root/.bashrc 21 | - /home/vagrant/.bashrc 22 | 23 | - name: Create motd directory 24 | become: true 25 | file: 26 | path: "/etc/update-motd.d" 27 | state: directory 28 | 29 | - name: Copy motd files 30 | become: true 31 | copy: 32 | src: "files/{{ item }}" 33 | dest: "/etc/update-motd.d/{{ item }}" 34 | mode: 0755 35 | loop: 36 | - 00-header 37 | - 10-sysinfo 38 | - 90-footer 39 | 40 | - name: Clean unessesary packages 41 | become: true 42 | package: 43 | name: 44 | - libmtp-runtime 45 | - qt4-doc-html 46 | - wxmaxima 47 | - inkscape 48 | - synaptic 49 | - jag 50 | - fly-all-optional 51 | - blender 52 | - swfdec-mozilla 53 | - maxima 54 | - qmmp 55 | state: absent 56 | when: '"Desktop" in type' 57 | 58 | - name: Autoclean 59 | become: true 60 | yum: 61 | autoremove: yes 62 | 63 | - name: Create directory 64 | file: 65 | path: /home/vagrant/.ssh 66 | state: directory 67 | mode: 0700 68 | 69 | - name: 70 | uri: 71 | url: https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub 72 | dest: /home/vagrant/.ssh/authorized_keys 73 | validate_certs: no 74 | mode: '0600' 75 | 76 | #- name: Copy using inline content 77 | # copy: 78 | # content: "{{ vagrant_key }}" 79 | # dest: /home/vagrant/.ssh/authorized_keys 80 | # mode: '600' 81 | 82 | - name: Sync file system 83 | command: "sync" 84 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AstraLinux Packer templates 2 | 3 | ![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/stillru/astralinux-packer-template?style=flat-square) 4 | ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/stillru/astralinux-packer-template?style=flat-square) 5 | 6 | **Table of Contents** 7 | 8 | - [Project Description/Описание проекта](#project-descriptionописание-проекта) 9 | - [Russian](#russian) 10 | - [English](#english) 11 | - [Russian Readme](README.ru.md) 12 | - [English Readme](README.en.md) 13 | - [Disclamer/Отказ от ответственности](#disclamerотказ-от-ответственности) 14 | - [Образа/Images](#ОбразаImages) 15 | 16 | # Project Description/Описание проекта 17 | ## Russian 18 | Проект представляет из себя попытку создать шаблон для инструмента `packer` на основе операционной системы `AstraLinux Common Edition`. 19 | 20 | Все предыдущие похожие попытки заброшены их создателями. 21 | 22 | Данный проект является для меня первой попыткой вести проект в соответствии с практиками работы с git. 23 | ## English 24 | The project is an attempt to create a template for the `packer` tool based on the` AstraLinux Common Edition` operating system. 25 | 26 | All previous similar attempts have been abandoned by their creators. 27 | 28 | This project is my first attempt to lead the project in accordance with the practices of working with git. 29 | 30 | ## Disclamer/Отказ от ответственности 31 | Я не являюсь сотрудником ГК Astra Linux (ООО «РусБИТех-Астра»). Все права на торговые марки принадлежат их владельцам. Исходный код предоставляется "как есть". 32 | 33 | I am not an employee of the Astra Linux Group of Companies (RusBITech-Astra LLC). All rights to trademarks belong to their respective owners. The source code is provided "as is". 34 | 35 | ## Образа/Images 36 | 37 | Результат работы данного тимплейта доступен по адресу https://app.vagrantup.com/stillru/boxes/astra-orel-server & https://app.vagrantup.com/stillru/boxes/astra-orel 38 | 39 | The result of this teamplate is available at https://app.vagrantup.com/stillru/boxes/astra-orel-server & https://app.vagrantup.com/stillru/boxes/astra-orel 40 | -------------------------------------------------------------------------------- /CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | Changelog 2 | ========= 3 | 4 | В разработке 5 | ------------ 6 | 7 | Добавлено 8 | ~~~~~~~~~ 9 | - Добавлен шаблон для RedOS Murom 7.3. [Stepan Illichevsky] 10 | 11 | 12 | Исправлено 13 | ~~~~~~~~~~ 14 | - Исправлен баг долгого запуска машин AstraLinux Desktop ( fix: #26 ) [Stepan Illichevsky] 15 | 16 | 17 | 1.0.0 (2021-08-11) 18 | ------------------ 19 | 20 | Добавлено 21 | ~~~~~~~~~ 22 | - Создана вся сопутствующая инфраструктура для семейства ОС AltLinux. [Steve Illichevskiy] 23 | 24 | - Добавлен тимплейт для AltLinux 9.1.1. [Steve Illichevskiy] 25 | 26 | - Добавлен тимплейт для AltLinux 8.2. [Steve Illichevskiy] 27 | 28 | 29 | 2.12.42 (2021-04-02) 30 | -------------------- 31 | 32 | Добавлено 33 | ~~~~~~~~~ 34 | - Добавлен файл с конфигурацией ansible. [Steve Illichevskiy] 35 | 36 | - Новый preseed для генерации образа без графики - Server. [Steve Illichevskiy] 37 | 38 | 39 | Исправлено 40 | ~~~~~~~~~~ 41 | - Исправлен скрипт генерации mtod приглашения. [Steve Illichevskiy] 42 | 43 | - Используется ядро 5.4 (fix #19) [Steve Illichevskiy] 44 | 45 | 46 | 2.12.40 (2021-03-01) 47 | -------------------- 48 | 49 | Добавлено 50 | ~~~~~~~~~ 51 | - Версия с базовым iso от версии 2.12.40. [Steve Illichevskiy] 52 | 53 | - Обновлён README для англоязычных пользователей. [Steve Illichevskiy] 54 | 55 | - Разделил README на две части в двух разных файлах. [Steve Illichevskiy] 56 | 57 | 58 | Исправлено 59 | ~~~~~~~~~~ 60 | - Поправлена конфигурация для сетевой карты eth0 (fix #18) [Steve Illichevskiy] 61 | 62 | - Исправлен вывод в терминале (fix #16) [Steve Illichevskiy] 63 | 64 | - Реализовано указание ip через переменную ( fix #11), версии приведены к фактической (fix #13) [Steve Illichevskiy] 65 | 66 | 67 | 2.12.29 (2020-11-24) 68 | -------------------- 69 | 70 | Добавлено 71 | ~~~~~~~~~ 72 | - Большое обновление fix #8 #9 #10. [Steve Illichevskiy] 73 | 74 | - Добавлена генерация файлов метаданных в box-файл. [Steve Illichevskiy] 75 | 76 | 77 | Изменено 78 | ~~~~~~~~ 79 | - Удалены не используемые части скрипта. Добавлено выключение машины на последнем шаге. [Steve Illichevskiy] 80 | 81 | 82 | Исправлено 83 | ~~~~~~~~~~ 84 | - Поправил имена виртуалок в части домена. Немного переработал вывод в консоль. [Steve Illichevskiy] 85 | 86 | - Поправлен тимплейт Vagrantfile. Fixes #7. [Steve Illichevskiy] 87 | 88 | - Поравлен тимплейт для генерирования info.json. Fixes #6. [Steve Illichevskiy] 89 | 90 | - Поправлен файл с инструкциями по развёртыванию. [Steve Illichevskiy] 91 | 92 | - Удалён не используемый код. Поправлен вывод в консоли fix #5. [Steve Illichevskiy] 93 | 94 | 95 | 0.0.0 (2020-11-15) 96 | ------------------ 97 | 98 | - Запуск проекта 99 | -------------------------------------------------------------------------------- /ansible/OS/astra.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Include vars for AstraLinux 3 | include_vars: 4 | file: vars/astra.yml 5 | 6 | - name: Generate info 7 | delegate_to: localhost 8 | template: 9 | src: "templates/info.json.j2" 10 | dest: "../data/info.json" 11 | 12 | - name: Generate metadata 13 | delegate_to: localhost 14 | template: 15 | src: "templates/metadata.json.j2" 16 | dest: "../data/metadata.json" 17 | 18 | - name: Generate Vgarantfile 19 | delegate_to: localhost 20 | template: 21 | src: "templates/Vagrantfile.j2" 22 | dest: "../data/Vagrantfile" 23 | 24 | - name: Enable ssh 25 | become: true 26 | service: 27 | name: ssh 28 | enabled: yes 29 | state: started 30 | 31 | - name: Generate prompt 32 | become: true 33 | blockinfile: 34 | path: "{{ item }}" 35 | marker: "#{mark} ANSIBLE MANAGED BLOCK" 36 | block: | 37 | if [[ $UID == 0 ]] 38 | then 39 | PS1="[\[\033[1;32m\]{{ version }}\[\033[00m\]|\[\033[1;31m\]\u@\[\033[1;33m\]\h:\[\033[1;31m\]\w]# \[\033[00m\]" 40 | else 41 | PS1="[\[\033[1;32m\]{{ version }}\[\033[00m\]|\[\033[1;32m\]\u@\[\033[1;33m\]\h:\[\033[1;32m\]\w]$ \[\033[00m\]" 42 | fi 43 | loop: 44 | - /etc/bash.bashrc 45 | - /root/.bashrc 46 | - /home/vagrant/.bashrc 47 | 48 | - name: Create motd directory 49 | become: true 50 | file: 51 | path: "/etc/update-motd.d" 52 | state: directory 53 | 54 | - name: Copy motd files 55 | become: true 56 | copy: 57 | src: "files/{{ item }}" 58 | dest: "/etc/update-motd.d/{{ item }}" 59 | mode: 755 60 | loop: 61 | - 00-header 62 | - 10-sysinfo 63 | - 90-footer 64 | 65 | - name: Clean unessesary packages 66 | become: true 67 | package: 68 | name: 69 | - libmtp-runtime 70 | - qt4-doc-html 71 | - wxmaxima 72 | - inkscape 73 | - synaptic 74 | - jag 75 | - fly-all-optional 76 | - blender 77 | - swfdec-mozilla 78 | - maxima 79 | - qmmp 80 | - linux-image-*-hardened 81 | state: absent 82 | when: '"Desktop" in type' 83 | 84 | - name: Autoclean 85 | become: true 86 | apt: 87 | autoremove: yes 88 | 89 | - name: "Enable Autologin" 90 | become: yes 91 | replace: 92 | path: /etc/X11/fly-dm/fly-dmrc 93 | regexp: '{{ item.reg}}.*$' 94 | replace: '{{ item.repl }}\n' 95 | backup: yes 96 | loop: 97 | - { reg: "#AutoLoginEnable" , repl: "AutoLoginEnable=true" } 98 | - { reg: "#AutoLoginUser" , repl: "AutoLoginUser=vagrant" } 99 | - { reg: "#AutoLoginPass" , repl: "AutoLoginPass=vagrant" } 100 | when: '"Desktop" in type' 101 | 102 | - name: Enable DHCP on eth0 103 | become: yes 104 | blockinfile: 105 | path: /etc/network/interfaces 106 | marker: "#{mark} ANSIBLE MANAGED BLOCK" 107 | block: | 108 | allow-hotplug eth0 109 | iface eth0 inet dhcp 110 | -------------------------------------------------------------------------------- /ansible/OS/alt.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Include vars for Altlinux 3 | include_vars: 4 | file: vars/alt.yml 5 | 6 | - name: Generate info 7 | delegate_to: localhost 8 | template: 9 | src: "templates/info.json.j2" 10 | dest: "../data/info.json" 11 | 12 | - name: Generate metadata 13 | delegate_to: localhost 14 | template: 15 | src: "templates/metadata.json.j2" 16 | dest: "../data/metadata.json" 17 | 18 | - name: Generate Vgarantfile 19 | delegate_to: localhost 20 | template: 21 | src: "templates/Vagrantfile.j2" 22 | dest: "../data/Vagrantfile" 23 | 24 | - name: Enable ssh 25 | become: true 26 | service: 27 | name: ssh 28 | enabled: yes 29 | state: started 30 | 31 | - name: Generate prompt 32 | become: true 33 | blockinfile: 34 | path: "{{ item }}" 35 | marker: "#{mark} ANSIBLE MANAGED BLOCK" 36 | block: | 37 | if [[ $UID == 0 ]] 38 | then 39 | PS1="[\[\033[1;32m\]{{ version }}\[\033[00m\]|\[\033[1;31m\]\u@\[\033[1;33m\]\h:\[\033[1;31m\]\w]# \[\033[00m\]" 40 | else 41 | PS1="[\[\033[1;32m\]{{ version }}\[\033[00m\]|\[\033[1;32m\]\u@\[\033[1;33m\]\h:\[\033[1;32m\]\w]$ \[\033[00m\]" 42 | fi 43 | loop: 44 | - /etc/bash.bashrc 45 | - /root/.bashrc 46 | - /home/vagrant/.bashrc 47 | 48 | - name: Create motd directory 49 | become: true 50 | file: 51 | path: "/etc/update-motd.d" 52 | state: directory 53 | 54 | - name: Copy motd files 55 | become: true 56 | copy: 57 | src: "files/{{ item }}" 58 | dest: "/etc/update-motd.d/{{ item }}" 59 | mode: 755 60 | loop: 61 | - 00-header 62 | - 10-sysinfo 63 | - 90-footer 64 | 65 | - name: Clean unessesary packages 66 | become: true 67 | package: 68 | name: 69 | - libmtp-runtime 70 | - qt4-doc-html 71 | - wxmaxima 72 | - inkscape 73 | - synaptic 74 | - jag 75 | - fly-all-optional 76 | - blender 77 | - swfdec-mozilla 78 | - maxima 79 | - qmmp 80 | - linux-image-*-hardened 81 | state: absent 82 | when: '"Desktop" in type' 83 | 84 | - name: Autoclean 85 | become: true 86 | apt: 87 | autoremove: yes 88 | 89 | - name: "Enable Autologin" 90 | become: yes 91 | replace: 92 | path: /etc/X11/fly-dm/fly-dmrc 93 | regexp: '{{ item.reg}}.*$' 94 | replace: '{{ item.repl }}\n' 95 | backup: yes 96 | loop: 97 | - { reg: "#AutoLoginEnable" , repl: "AutoLoginEnable=true" } 98 | - { reg: "#AutoLoginUser" , repl: "AutoLoginUser=vagrant" } 99 | - { reg: "#AutoLoginPass" , repl: "AutoLoginPass=vagrant" } 100 | when: '"Desktop" in type' 101 | 102 | - name: Enable DHCP on eth0 103 | become: yes 104 | blockinfile: 105 | path: /etc/network/interfaces 106 | marker: "#{mark} ANSIBLE MANAGED BLOCK" 107 | block: | 108 | allow-hotplug eth0 109 | iface eth0 inet dhcp 110 | -------------------------------------------------------------------------------- /config/redos-7.3-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "type": "Desktop", 4 | "ip_address": "192.168.1.10", 5 | "cpus": "2", 6 | "name": "redos-murom", 7 | "domain": "undefined", 8 | "version": "7.3", 9 | "user": "vagrant", 10 | "password": "vagrant", 11 | "size": "30000", 12 | "mirror": "https://redos.red-soft.ru/redos/7.3/redos-MUROM-7.3-20210412-Everything-x86_64-DVD1.iso", 13 | "md5sum": "2c2fe58b35227bcce0d9a2fca076974b" 14 | }, 15 | 16 | "builders": [ 17 | { 18 | "machine_type": "ubuntu", 19 | "name": "{{user `name`}}", 20 | "type": "qemu", 21 | "format": "qcow2", 22 | "accelerator": "kvm", 23 | 24 | "disk_size": "{{user `size`}}", 25 | "disk_interface": "virtio", 26 | 27 | "iso_url": "{{user `mirror`}}", 28 | "iso_checksum": "md5:{{user `md5sum`}}", 29 | 30 | "http_directory": "http", 31 | "http_port_min": 8999, 32 | "http_port_max": 8999, 33 | 34 | "ssh_username": "{{user `user`}}", 35 | "ssh_password": "{{user `password`}}", 36 | "ssh_port": 22, 37 | "ssh_wait_timeout": "240m", 38 | 39 | "net_device": "virtio-net", 40 | 41 | "shutdown_timeout": "1h", 42 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 43 | 44 | "boot_wait": "2s", 45 | "cpus": "{{ user `cpus` }}", 46 | "qemuargs": [ 47 | [ 48 | "-m", 49 | "1024M" 50 | ], 51 | [ 52 | "-smp", 53 | "{{ user `cpus` }}" 54 | ], 55 | [ 56 | "-rtc", 57 | "base=localtime" 58 | ] 59 | ], 60 | "boot_command": [ 61 | "vmlinuz ", 62 | "net.ifnames=0 ", 63 | "modprobe.blacklist=evbug ", 64 | "vga=788 ", 65 | "inst.ks=http://{{user `ip_address`}}:{{ .HTTPPort }}/redos.ks.cfg ", 66 | "acpi=force ", 67 | "initrd=initrd.img", 68 | "" 69 | ] 70 | } 71 | ], 72 | 73 | "provisioners": [ 74 | { 75 | "type": "ansible", 76 | "playbook_file": "./ansible/generate.yml", 77 | "user": "vagrant", 78 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name={{user `name`}} type={{user `type`}}"] 79 | }, 80 | { 81 | "type": "shell", 82 | "execute_command": "echo '{{user `password`}}' | {{.Vars}} sudo -E -S bash '{{.Path}}'", 83 | "expect_disconnect": true, 84 | "scripts": [ 85 | "scripts/minimize.sh" 86 | ] 87 | } 88 | ], 89 | 90 | "post-processors": [ 91 | { 92 | "type": "vagrant", 93 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}-{{user `type`}}.box", 94 | "include": [ 95 | "data/Vagrantfile", 96 | "data/info.json" 97 | ] 98 | } 99 | ] 100 | } 101 | -------------------------------------------------------------------------------- /.gitchangelog.rc: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; mode: python -*- 2 | # get more information on this file usage on 3 | # https://github.com/vaab/gitchangelog/blob/master/src/gitchangelog/gitchangelog.rc.reference 4 | 5 | 6 | from gitchangelog.gitchangelog import ReSub 7 | 8 | ignore_regexps = [ 9 | r'@minor', r'!minor', 10 | r'@cosmetic', r'!cosmetic', 11 | r'@refactor', r'!refactor', 12 | r'@wip', r'!wip', 13 | r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[p|P]kg:', 14 | r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[d|D]ev:', 15 | r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*[t|T]est:', 16 | r'^(.{3,3}\s*:)?\s*[fF]irst commit.?\s*$', 17 | r'^$', ## ignore commits with empty messages 18 | ] 19 | 20 | section_regexps = [ 21 | (u'Добавлено', [ 22 | r'^[nN]ew\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$', 23 | ]), 24 | (u'Изменено', [ 25 | r'^[cC]hg\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$', 26 | ]), 27 | (u'Исправлено', [ 28 | r'^[fF]ix\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n]*)$', 29 | ]), 30 | 31 | # don't show untagged/without section logs 32 | #('Other', None ## Match all lines 33 | # ), 34 | 35 | ] 36 | 37 | 38 | body_process = ReSub(r'((^|\n)[A-Z]\w+(-\w+)*: .*(\n\s+.*)*)+$', r'') | strip 39 | 40 | subject_process = (strip | 41 | ReSub(r'^([cC]hg|[fF]ix|[nN]ew)\s*:\s*((dev|use?r|pkg|test|doc)\s*:\s*)?([^\n@]*)(@[a-z]+\s+)*$', r'\4') | 42 | SetIfEmpty("No commit message.") | ucfirst | final_dot) 43 | 44 | tag_filter_regexp = r'^[0-9]+\.[0-9]+(\.[0-9]+)?(-\w.*)?$' 45 | 46 | unreleased_version_label = u"В разработке" 47 | 48 | import tempfile 49 | import textwrap 50 | 51 | #with tempfile.NamedTemporaryFile() as template_file: 52 | # template = textwrap.dedent("""\ 53 | #{{#general_title}} 54 | #{{{title}}} 55 | #========== 56 | #{{/general_title}} 57 | # 58 | #{{#versions}} 59 | #{{{label}}} 60 | #----------- 61 | # 62 | #{{#sections}} 63 | #{{{label}}} 64 | #~~~~~~~~~~ 65 | # 66 | #{{#commits}} 67 | #- {{{subject}}} 68 | #{{#body}} 69 | #{{{body_indented}} 70 | #} 71 | #{{/body}} 72 | #{{/commits}}\n 73 | #{{/sections}}\n 74 | #{{/versions}} 75 | #""") 76 | 77 | #template_file.write(template) 78 | #template_file.flush() 79 | output_engine = mustache("restructuredtext") 80 | #output_engine = mustache(template_file.name) 81 | 82 | include_merge = False 83 | 84 | #log_encoding = 'utf-8' 85 | 86 | OUTPUT_FILE = "CHANGELOG.rst" 87 | INSERT_POINT_REGEX = r'''(?isxu) 88 | ^ 89 | ( 90 | Changelog\s*(\n|\r\n|\r) ## ``Changelog`` line 91 | ==+\s*(\n|\r\n|\r){2} ## ``=========`` rest underline 92 | ) 93 | 94 | ( ## Match all between changelog and release rev 95 | ( 96 | (?! 97 | (?<=(\n|\r)) ## look back for newline 98 | %(rev)s ## revision 99 | \s+ 100 | \([0-9]+-[0-9]{2}-[0-9]{2}\)(\n|\r\n|\r) ## date 101 | --+(\n|\r\n|\r) ## ``---`` underline 102 | ) 103 | . 104 | )* 105 | ) 106 | (?P(?P%(rev)s)) 107 | ''' % {'rev': r"[0-9]+\.[0-9]+(\.[0-9]+)?(-.+.*)?(\+.+.*)?"} 108 | 109 | revs = [ 110 | Caret(FileFirstRegexMatch(OUTPUT_FILE, INSERT_POINT_REGEX)), 111 | "HEAD" 112 | ] 113 | 114 | publish = FileRegexSubst(OUTPUT_FILE, INSERT_POINT_REGEX, r"\1\o\g") 115 | -------------------------------------------------------------------------------- /http/redos.ks.cfg: -------------------------------------------------------------------------------- 1 | # CentOS 7.x kickstart file - ks7.cfg 2 | # 3 | # For more information on kickstart syntax and commands, refer to the 4 | # CentOS Installation Guide: 5 | # https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html 6 | # 7 | # For testing, you can fire up a local http server temporarily. 8 | # cd to the directory where this ks.cfg file resides and run the following: 9 | # $ python -m SimpleHTTPServer 10 | # You don't have to restart the server every time you make changes. Python 11 | # will reload the file from disk every time. As long as you save your changes 12 | # they will be reflected in the next HTTP download. Then to test with 13 | # a PXE boot server, enter the following on the PXE boot prompt: 14 | # > linux text ks=http://:8000/ks.cfg 15 | 16 | # Required settings 17 | lang en_US.UTF-8 18 | keyboard us 19 | rootpw vagrant 20 | authconfig --enableshadow --enablemd5 21 | timezone UTC 22 | 23 | # Optional settings 24 | install 25 | cdrom 26 | user --name=vagrant --plaintext --password vagrant 27 | #unsupported_hardware 28 | network --device eth0 --bootproto=dhcp 29 | network --bootproto=dhcp 30 | firewall --disabled 31 | selinux --permissive 32 | # The biosdevname and ifnames options ensure we get "eth0" as our interface 33 | # even in environments like virtualbox that emulate a real NW card 34 | bootloader --location=mbr --append="no_timer_check console=tty0 console=ttyS0,115200 net.ifnames=0 biosdevname=0" 35 | text 36 | xconfig --startxonboot --defaultdesktop=gnome 37 | eula --agreed 38 | zerombr 39 | clearpart --all --initlabel 40 | autopart 41 | firstboot --disabled 42 | reboot --eject 43 | 44 | %packages --ignoremissing --excludedocs 45 | 46 | @^mate-desktop-environment 47 | @backup-client 48 | @base 49 | @branding 50 | @core 51 | @desktop-debugging 52 | @dial-up 53 | @directory-client 54 | @fonts 55 | @guest-agents 56 | @guest-desktop-agents 57 | @input-methods 58 | @internet-applications 59 | @internet-browser 60 | @java-platform 61 | @mate-desktop 62 | @multimedia 63 | @network-file-system-client 64 | @print-client 65 | @x11 66 | chrony 67 | anaconda 68 | isomd5sum 69 | kernel 70 | memtest86+ 71 | grub2-efi 72 | grub2 73 | shim 74 | syslinux 75 | -dracut-config-rescue 76 | # vagrant needs this to copy initial files via scp 77 | openssh-clients 78 | openssh-server 79 | # Prerequisites for installing VMware Tools or VirtualBox guest additions. 80 | # Put in kickstart to ensure first version installed is from install disk, 81 | # not latest from a mirror. 82 | kernel-headers 83 | kernel-devel 84 | gcc 85 | make 86 | perl 87 | curl 88 | wget 89 | bzip2 90 | dkms 91 | patch 92 | net-tools 93 | git 94 | # Core selinux dependencies installed on 7.x, no need to specify 95 | # Other stuff 96 | sudo 97 | nfs-utils 98 | 99 | %end 100 | 101 | %post 102 | # configure vagrant user in sudoers 103 | echo "%vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant 104 | chmod 0440 /etc/sudoers.d/vagrant 105 | cp /etc/sudoers /etc/sudoers.orig 106 | curl "https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub" -o "/home/vagrant/.ssh/ 107 | sed -i "s/^\(.*requiretty\)$/#\1/" /etc/sudoers 108 | # keep proxy settings through sudo 109 | echo 'Defaults env_keep += "HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY NO_PROXY"' >> /etc/sudoers 110 | %end 111 | -------------------------------------------------------------------------------- /config/astra-common-1.12.29-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "cpus": "2", 4 | "name": "astra-orel", 5 | "domain": "undefined", 6 | "version": "1.12.29", 7 | "user": "vagrant", 8 | "password": "vagrant", 9 | "size": "30000", 10 | "mirror": "http://download.astralinux.ru/astra/stable/orel/iso/orel-current.iso", 11 | "md5sum": "6f0102e904a793b3674f8d0fedd6d93f" 12 | }, 13 | 14 | "builders": [ 15 | { 16 | "machine_type": "ubuntu", 17 | "name": "{{user `name`}}", 18 | "type": "qemu", 19 | "format": "qcow2", 20 | "accelerator": "kvm", 21 | 22 | "disk_size": "{{user `size`}}", 23 | "disk_interface": "virtio", 24 | 25 | "iso_url": "{{user `mirror`}}", 26 | "iso_checksum": "md5:{{user `md5sum`}}", 27 | 28 | "http_directory": "http", 29 | "http_port_min": 8999, 30 | "http_port_max": 8999, 31 | 32 | "ssh_username": "{{user `user`}}", 33 | "ssh_password": "{{user `password`}}", 34 | "ssh_port": 22, 35 | "ssh_wait_timeout": "240m", 36 | 37 | "net_device": "e1000", 38 | 39 | "shutdown_timeout": "1h", 40 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 41 | 42 | "boot_wait": "2s", 43 | "cpus": "{{ user `cpus` }}", 44 | "qemuargs": [ 45 | [ 46 | "-m", 47 | "1024M" 48 | ], 49 | [ 50 | "-smp", 51 | "{{ user `cpus` }}" 52 | ], 53 | [ 54 | "-rtc", 55 | "base=localtime" 56 | ] 57 | ], 58 | "boot_command": [ 59 | "", 60 | "", 61 | "/netinst/linux ", 62 | "net.ifnames=0 ", 63 | "modprobe.blacklist=evbug ", 64 | "vga=788 ", 65 | "auto=true ", 66 | "priority=critical ", 67 | "debian-installer/locale=ru_RU ", 68 | "debian-installer/keymap=ru ", 69 | "hostname={{user `name`}} ", 70 | "domain={{user `domain`}} ", 71 | "astra-license/license=true ", 72 | "url=http://192.168.1.10:{{ .HTTPPort }}/{{user `name`}}-{{user `version`}}-{{user `type`}}.cfg ", 73 | "interface=auto ", 74 | "netcfg/dhcp_timeout=60 ", 75 | "acpi=force ", 76 | "initrd=/netinst/initrd.gz", 77 | "" 78 | ] 79 | } 80 | ], 81 | 82 | "provisioners": [ 83 | { 84 | "type": "ansible", 85 | "playbook_file": "./ansible/generate.yml", 86 | "user": "vagrant", 87 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name={{user `name`}}"] 88 | }, 89 | { 90 | "type": "shell", 91 | "execute_command": "echo '{{user `password`}}' | {{.Vars}} sudo -E -S bash '{{.Path}}'", 92 | "expect_disconnect": true, 93 | "scripts": [ 94 | "scripts/minimize.sh" 95 | ] 96 | } 97 | ], 98 | 99 | "post-processors": [ 100 | { 101 | "type": "vagrant", 102 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}.box", 103 | "include": [ 104 | "data/Vagrantfile", 105 | "data/info.json" 106 | ] 107 | } 108 | ] 109 | } 110 | -------------------------------------------------------------------------------- /config/astra-common-2.12.29-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "ip_address": "192.168.1.10", 4 | "cpus": "2", 5 | "name": "astra-orel", 6 | "domain": "undefined", 7 | "version": "2.12.29", 8 | "user": "vagrant", 9 | "password": "vagrant", 10 | "size": "30000", 11 | "mirror": "http://download.astralinux.ru/astra/stable/orel/iso/orel-current.iso", 12 | "md5sum": "6f0102e904a793b3674f8d0fedd6d93f" 13 | }, 14 | 15 | "builders": [ 16 | { 17 | "machine_type": "ubuntu", 18 | "name": "{{user `name`}}", 19 | "type": "qemu", 20 | "format": "qcow2", 21 | "accelerator": "kvm", 22 | 23 | "disk_size": "{{user `size`}}", 24 | "disk_interface": "virtio", 25 | 26 | "iso_url": "{{user `mirror`}}", 27 | "iso_checksum": "md5:{{user `md5sum`}}", 28 | 29 | "http_directory": "http", 30 | "http_port_min": 8999, 31 | "http_port_max": 8999, 32 | 33 | "ssh_username": "{{user `user`}}", 34 | "ssh_password": "{{user `password`}}", 35 | "ssh_port": 22, 36 | "ssh_wait_timeout": "240m", 37 | 38 | "net_device": "e1000", 39 | 40 | "shutdown_timeout": "1h", 41 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 42 | 43 | "boot_wait": "2s", 44 | "cpus": "{{ user `cpus` }}", 45 | "qemuargs": [ 46 | [ 47 | "-m", 48 | "1024M" 49 | ], 50 | [ 51 | "-smp", 52 | "{{ user `cpus` }}" 53 | ], 54 | [ 55 | "-rtc", 56 | "base=localtime" 57 | ] 58 | ], 59 | "boot_command": [ 60 | "", 61 | "", 62 | "/netinst/linux ", 63 | "net.ifnames=0 ", 64 | "modprobe.blacklist=evbug ", 65 | "vga=788 ", 66 | "auto=true ", 67 | "priority=critical ", 68 | "debian-installer/locale=ru_RU ", 69 | "debian-installer/keymap=ru ", 70 | "hostname={{user `name`}} ", 71 | "domain={{user `domain`}} ", 72 | "astra-license/license=true ", 73 | "url=http://{{user `ip_address`}}:{{ .HTTPPort }}/{{user `name`}}-{{user `version`}}-{{user `type`}}.cfg ", 74 | "interface=auto ", 75 | "netcfg/dhcp_timeout=60 ", 76 | "acpi=force ", 77 | "initrd=/netinst/initrd.gz", 78 | "" 79 | ] 80 | } 81 | ], 82 | 83 | "provisioners": [ 84 | { 85 | "type": "ansible", 86 | "playbook_file": "./ansible/generate.yml", 87 | "user": "vagrant", 88 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name={{user `name`}}"] 89 | }, 90 | { 91 | "type": "shell", 92 | "execute_command": "echo '{{user `password`}}' | {{.Vars}} sudo -E -S bash '{{.Path}}'", 93 | "expect_disconnect": true, 94 | "scripts": [ 95 | "scripts/minimize.sh" 96 | ] 97 | } 98 | ], 99 | 100 | "post-processors": [ 101 | { 102 | "type": "vagrant", 103 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}.box", 104 | "include": [ 105 | "data/Vagrantfile", 106 | "data/info.json" 107 | ] 108 | } 109 | ] 110 | } 111 | -------------------------------------------------------------------------------- /config/astra-common-2.12.40-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "ip_address": "192.168.1.10", 4 | "cpus": "2", 5 | "name": "astra-orel", 6 | "domain": "undefined", 7 | "version": "2.12.40", 8 | "user": "vagrant", 9 | "password": "vagrant", 10 | "size": "30000", 11 | "mirror": "http://download.astralinux.ru/astra/stable/orel/iso/orel-2.12.40-25.12.2020_14.45.iso", 12 | "md5sum": "6c833273619f3f400cdd51854ed4828c" 13 | }, 14 | 15 | "builders": [ 16 | { 17 | "machine_type": "ubuntu", 18 | "name": "{{user `name`}}", 19 | "type": "qemu", 20 | "format": "qcow2", 21 | "accelerator": "kvm", 22 | 23 | "disk_size": "{{user `size`}}", 24 | "disk_interface": "virtio", 25 | 26 | "iso_url": "{{user `mirror`}}", 27 | "iso_checksum": "md5:{{user `md5sum`}}", 28 | 29 | "http_directory": "http", 30 | "http_port_min": 8999, 31 | "http_port_max": 8999, 32 | 33 | "ssh_username": "{{user `user`}}", 34 | "ssh_password": "{{user `password`}}", 35 | "ssh_port": 22, 36 | "ssh_wait_timeout": "240m", 37 | 38 | "net_device": "e1000", 39 | 40 | "shutdown_timeout": "1h", 41 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 42 | 43 | "boot_wait": "2s", 44 | "cpus": "{{ user `cpus` }}", 45 | "qemuargs": [ 46 | [ 47 | "-m", 48 | "1024M" 49 | ], 50 | [ 51 | "-smp", 52 | "{{ user `cpus` }}" 53 | ], 54 | [ 55 | "-rtc", 56 | "base=localtime" 57 | ] 58 | ], 59 | "boot_command": [ 60 | "", 61 | "", 62 | "/netinst/linux ", 63 | "net.ifnames=0 ", 64 | "modprobe.blacklist=evbug ", 65 | "vga=788 ", 66 | "auto=true ", 67 | "priority=critical ", 68 | "debian-installer/locale=ru_RU ", 69 | "debian-installer/keymap=ru ", 70 | "hostname={{user `name`}} ", 71 | "domain={{user `domain`}} ", 72 | "astra-license/license=true ", 73 | "url=http://{{user `ip_address`}}:{{ .HTTPPort }}/{{user `name`}}-{{user `version`}}-{{user `type`}}.cfg ", 74 | "interface=auto ", 75 | "netcfg/dhcp_timeout=60 ", 76 | "acpi=force ", 77 | "initrd=/netinst/initrd.gz", 78 | "" 79 | ] 80 | } 81 | ], 82 | 83 | "provisioners": [ 84 | { 85 | "type": "ansible", 86 | "playbook_file": "./ansible/generate.yml", 87 | "user": "vagrant", 88 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name={{user `name`}}"] 89 | }, 90 | { 91 | "type": "shell", 92 | "execute_command": "echo '{{user `password`}}' | {{.Vars}} sudo -E -S bash '{{.Path}}'", 93 | "expect_disconnect": true, 94 | "scripts": [ 95 | "scripts/minimize.sh" 96 | ] 97 | } 98 | ], 99 | 100 | "post-processors": [ 101 | { 102 | "type": "vagrant", 103 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}.box", 104 | "include": [ 105 | "data/Vagrantfile", 106 | "data/info.json" 107 | ] 108 | } 109 | ] 110 | } 111 | -------------------------------------------------------------------------------- /config/astra-common-2.12.42-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "ip_address": "192.168.1.10", 4 | "cpus": "2", 5 | "name": "astra-orel", 6 | "domain": "undefined", 7 | "version": "2.12.42", 8 | "user": "vagrant", 9 | "password": "vagrant", 10 | "size": "30000", 11 | "mirror": "http://download.astralinux.ru/astra/stable/orel/iso/orel-2.12.40-25.12.2020_14.45.iso", 12 | "md5sum": "6c833273619f3f400cdd51854ed4828c" 13 | }, 14 | 15 | "builders": [ 16 | { 17 | "machine_type": "ubuntu", 18 | "name": "{{user `name`}}", 19 | "type": "qemu", 20 | "format": "qcow2", 21 | "accelerator": "kvm", 22 | 23 | "disk_size": "{{user `size`}}", 24 | "disk_interface": "virtio", 25 | 26 | "iso_url": "{{user `mirror`}}", 27 | "iso_checksum": "md5:{{user `md5sum`}}", 28 | 29 | "http_directory": "http", 30 | "http_port_min": 8999, 31 | "http_port_max": 8999, 32 | 33 | "ssh_username": "{{user `user`}}", 34 | "ssh_password": "{{user `password`}}", 35 | "ssh_port": 22, 36 | "ssh_wait_timeout": "240m", 37 | 38 | "net_device": "virtio-net", 39 | 40 | "shutdown_timeout": "1h", 41 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 42 | 43 | "boot_wait": "2s", 44 | "cpus": "{{ user `cpus` }}", 45 | "qemuargs": [ 46 | [ 47 | "-m", 48 | "1024M" 49 | ], 50 | [ 51 | "-smp", 52 | "{{ user `cpus` }}" 53 | ], 54 | [ 55 | "-rtc", 56 | "base=localtime" 57 | ] 58 | ], 59 | "boot_command": [ 60 | "", 61 | "", 62 | "/netinst/linux ", 63 | "net.ifnames=0 ", 64 | "modprobe.blacklist=evbug ", 65 | "vga=788 ", 66 | "auto=true ", 67 | "priority=critical ", 68 | "debian-installer/locale=ru_RU ", 69 | "debian-installer/keymap=ru ", 70 | "hostname={{user `name`}} ", 71 | "domain={{user `domain`}} ", 72 | "astra-license/license=true ", 73 | "url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{user `name`}}-{{user `version`}}-{{user `type`}}.cfg ", 74 | "interface=auto ", 75 | "netcfg/dhcp_timeout=60 ", 76 | "acpi=force ", 77 | "initrd=/netinst/initrd.gz", 78 | "" 79 | ] 80 | } 81 | ], 82 | 83 | "provisioners": [ 84 | { 85 | "type": "ansible", 86 | "playbook_file": "./ansible/generate.yml", 87 | "user": "vagrant", 88 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name={{user `name`}} type={{user `type`}}"] 89 | }, 90 | { 91 | "type": "shell", 92 | "execute_command": "echo '{{user `password`}}' | {{.Vars}} sudo -E -S bash '{{.Path}}'", 93 | "expect_disconnect": true, 94 | "scripts": [ 95 | "scripts/minimize.sh" 96 | ] 97 | } 98 | ], 99 | 100 | "post-processors": [ 101 | { 102 | "type": "vagrant", 103 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}-{{user `type`}}.box", 104 | "include": [ 105 | "data/Vagrantfile", 106 | "data/info.json" 107 | ] 108 | } 109 | ] 110 | } 111 | -------------------------------------------------------------------------------- /config/altlinux-k8workstation-9.1.1-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "vm_type": "qemu", 4 | "target_version": "9.1.1", 5 | "arch": "x86_64", 6 | "type": "desktop", 7 | "ip_address": "192.168.1.10", 8 | "cpus": "2", 9 | "name": "altlunux", 10 | "domain": "undefined", 11 | "version": "9.1.1", 12 | "user": "vagrant", 13 | "password": "vagrant", 14 | "size": "30000", 15 | "mirror": "https://mirror.yandex.ru/altlinux/p9/images/kworkstation/alt-kworkstation-9.1.1-install-x86_64.iso", 16 | "md5sum": "6725d66b86d976eedf303972c3632e75" 17 | }, 18 | 19 | "builders": [ 20 | { 21 | "machine_type": "ubuntu", 22 | "name": "{{user `name`}}", 23 | "type": "qemu", 24 | "format": "qcow2", 25 | "accelerator": "kvm", 26 | "headless" : false, 27 | 28 | "disk_size": "{{user `size`}}", 29 | "disk_interface": "virtio", 30 | 31 | "iso_url": "{{user `mirror`}}", 32 | "iso_checksum": "md5:{{user `md5sum`}}", 33 | 34 | "http_directory": "http", 35 | "http_port_min": 8999, 36 | "http_port_max": 8999, 37 | 38 | "ssh_username": "{{user `user`}}", 39 | "ssh_password": "{{user `password`}}", 40 | "ssh_port": 22, 41 | "ssh_wait_timeout": "240m", 42 | "ssh_pty": true, 43 | 44 | "net_device": "virtio-net", 45 | 46 | "shutdown_timeout": "1h", 47 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 48 | 49 | "boot_wait": "2s", 50 | "cpus": "{{ user `cpus` }}", 51 | "qemuargs": [ 52 | [ 53 | "-m", 54 | "1024M" 55 | ], 56 | [ 57 | "-smp", 58 | "{{ user `cpus` }}" 59 | ], 60 | [ 61 | "-rtc", 62 | "base=localtime" 63 | ] 64 | ], 65 | 66 | "boot_command": [ 67 | "", 68 | "/syslinux/alt0/vmlinuz quiet=1 showopts net.ifnames=0 automatic=method:cdrom,network:dhcp ai curl=http://{{ .HTTPIP }}:{{ .HTTPPort}}/9.1.1/ initrd=/syslinux/alt0/full.cz", 69 | "" 70 | ] 71 | } 72 | ], 73 | 74 | "provisioners": [ 75 | { 76 | "type": "file", 77 | "source": "scripts/", 78 | "destination": "/tmp/" 79 | }, 80 | { 81 | "type": "shell", 82 | "script": "scripts/vm_setup", 83 | "environment_vars": [ 84 | "ROOT_PASS={{ user `password` }}", 85 | "PASS='{{ user `password` }}'", 86 | "SSH_USER='{{ user `user` }}'", 87 | "VM_TYPE={{ user `vm_type` }}", 88 | "TARGET={{ user `target_version` }}", 89 | "TARGET_REPOS={{ user `target_version` }}", 90 | "ARCH={{ user `arch` }}", 91 | "CLOUDINIT=0", 92 | "SISYPHUS=0", 93 | "STEP_DIR=/tmp/steps" 94 | ] 95 | }, 96 | { 97 | "type": "ansible", 98 | "playbook_file": "./ansible/alt-generate.yml", 99 | "user": "vagrant", 100 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name_host={{user `name`}} type={{user `type`}}"] 101 | } 102 | ], 103 | 104 | "post-processors": [ 105 | { 106 | "type": "vagrant", 107 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}-{{user `type`}}.box", 108 | "include": [ 109 | "data/Vagrantfile", 110 | "data/info.json" 111 | ] 112 | }, 113 | ] 114 | } 115 | -------------------------------------------------------------------------------- /config/altlinux-k8workstation-8.3-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "vm_type": "qemu", 4 | "target_version": "8.3", 5 | "arch": "x86_64", 6 | "type": "desktop", 7 | "ip_address": "192.168.1.10", 8 | "cpus": "2", 9 | "name": "altlunux", 10 | "domain": "undefined", 11 | "version": "8.3", 12 | "user": "vagrant", 13 | "password": "vagrant", 14 | "size": "30000", 15 | "mirror": "https://mirror.yandex.ru/altlinux/p8/images/kworkstation/alt-kworkstation-8.3-install-x86_64.iso", 16 | "md5sum": "d718a9b63fd5eda29ba2dad718485bf3" 17 | }, 18 | 19 | "builders": [ 20 | { 21 | "machine_type": "ubuntu", 22 | "name": "{{user `name`}}", 23 | "type": "qemu", 24 | "format": "qcow2", 25 | "accelerator": "kvm", 26 | "headless" : false, 27 | 28 | "disk_size": "{{user `size`}}", 29 | "disk_interface": "virtio", 30 | 31 | "iso_url": "{{user `mirror`}}", 32 | "iso_checksum": "md5:{{user `md5sum`}}", 33 | 34 | "http_directory": "http", 35 | "http_port_min": 8999, 36 | "http_port_max": 8999, 37 | 38 | "ssh_username": "{{user `user`}}", 39 | "ssh_password": "{{user `password`}}", 40 | "ssh_port": 22, 41 | "ssh_wait_timeout": "240m", 42 | "ssh_pty": true, 43 | 44 | "net_device": "virtio-net", 45 | 46 | "shutdown_timeout": "1h", 47 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 48 | 49 | "boot_wait": "2s", 50 | "cpus": "{{ user `cpus` }}", 51 | "qemuargs": [ 52 | [ 53 | "-m", 54 | "1024M" 55 | ], 56 | [ 57 | "-smp", 58 | "{{ user `cpus` }}" 59 | ], 60 | [ 61 | "-rtc", 62 | "base=localtime" 63 | ] 64 | ], 65 | 66 | "boot_command": [ 67 | "", 68 | "/syslinux/alt0/vmlinuz quiet=1 showopts net.ifnames=0 automatic=method:cdrom,network:dhcp ai curl=http://{{ .HTTPIP }}:{{ .HTTPPort}}/ initrd=/syslinux/alt0/full.cz", 69 | "" 70 | ] 71 | } 72 | ], 73 | 74 | "provisioners": [ 75 | { 76 | "type": "file", 77 | "source": "scripts/", 78 | "destination": "/tmp/" 79 | }, 80 | { 81 | "type": "shell", 82 | "script": "scripts/vm_setup", 83 | "environment_vars": [ 84 | "ROOT_PASS={{ user `password` }}", 85 | "PASS='{{ user `password` }}'", 86 | "SSH_USER='{{ user `user` }}'", 87 | "VM_TYPE={{ user `vm_type` }}", 88 | "TARGET={{ user `target_version` }}", 89 | "TARGET_REPOS={{ user `target_version` }}", 90 | "ARCH={{ user `arch` }}", 91 | "CLOUDINIT=0", 92 | "SISYPHUS=0", 93 | "STEP_DIR=/tmp/steps" 94 | ] 95 | }, 96 | { 97 | "type": "ansible", 98 | "playbook_file": "./ansible/alt-generate.yml", 99 | "user": "vagrant", 100 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name_host={{user `name`}} type={{user `type`}}"] 101 | } 102 | ], 103 | 104 | "post-processors": [ 105 | { 106 | "type": "vagrant", 107 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}-{{user `type`}}.box", 108 | "include": [ 109 | "data/Vagrantfile", 110 | "data/info.json" 111 | ] 112 | }, 113 | { 114 | "output": "manifest.json", 115 | "strip_path": true, 116 | "type": "manifest", 117 | "custom_data": { 118 | "version": "{{user `version`}}" 119 | } 120 | }, 121 | { 122 | "inline": [ 123 | "jq . manifest.json" 124 | ], 125 | "type": "shell-local" 126 | } 127 | ] 128 | } 129 | -------------------------------------------------------------------------------- /config/altlinux-k8workstation-8.2-netinst.json: -------------------------------------------------------------------------------- 1 | { 2 | "variables": { 3 | "vm_type": "qemu", 4 | "target_version": "8.2", 5 | "arch": "x86_64", 6 | "type": "desktop", 7 | "ip_address": "192.168.1.10", 8 | "cpus": "2", 9 | "name": "altlunux", 10 | "domain": "undefined", 11 | "version": "8.2", 12 | "user": "vagrant", 13 | "password": "vagrant", 14 | "size": "30000", 15 | "mirror": "https://mirror.yandex.ru/altlinux/p8/images/kworkstation/alt-kworkstation-8.2-install-x86_64.iso", 16 | "md5sum": "eedddf8761df7a014a486b5aaf8a3f7f" 17 | }, 18 | 19 | "builders": [ 20 | { 21 | "machine_type": "ubuntu", 22 | "name": "{{user `name`}}", 23 | "type": "qemu", 24 | "format": "qcow2", 25 | "accelerator": "kvm", 26 | "headless" : false, 27 | 28 | "disk_size": "{{user `size`}}", 29 | "disk_interface": "virtio", 30 | 31 | "iso_url": "{{user `mirror`}}", 32 | "iso_checksum": "md5:{{user `md5sum`}}", 33 | 34 | "http_directory": "http", 35 | "http_port_min": 8999, 36 | "http_port_max": 8999, 37 | 38 | "ssh_username": "{{user `user`}}", 39 | "ssh_password": "{{user `password`}}", 40 | "ssh_port": 22, 41 | "ssh_wait_timeout": "240m", 42 | "ssh_pty": true, 43 | 44 | "net_device": "virtio-net", 45 | 46 | "shutdown_timeout": "1h", 47 | "shutdown_command": "echo {{user `password`}}| sudo -S systemctl poweroff", 48 | 49 | "boot_wait": "2s", 50 | "cpus": "{{ user `cpus` }}", 51 | "qemuargs": [ 52 | [ 53 | "-m", 54 | "1024M" 55 | ], 56 | [ 57 | "-smp", 58 | "{{ user `cpus` }}" 59 | ], 60 | [ 61 | "-rtc", 62 | "base=localtime" 63 | ] 64 | ], 65 | 66 | "boot_command": [ 67 | "", 68 | " /syslinux/alt0/vmlinuz", 69 | " initrd=/syslinux/alt0/full.cz", 70 | " text", 71 | " ai curl=http://{{ .HTTPIP }}:{{ .HTTPPort}}/8.2/ ", 72 | " lang=ru_RU stagename=altinst showopts ramdisk_size=123536 net.ifnames=0 ", 73 | " automatic=method:cdrom,network:dhcp ", 74 | "" 75 | ] 76 | } 77 | ], 78 | 79 | "provisioners": [ 80 | { 81 | "type": "file", 82 | "source": "scripts/", 83 | "destination": "/tmp/" 84 | }, 85 | { 86 | "type": "shell", 87 | "script": "scripts/vm_setup", 88 | "environment_vars": [ 89 | "ROOT_PASS={{ user `password` }}", 90 | "PASS='{{ user `password` }}'", 91 | "SSH_USER='{{ user `user` }}'", 92 | "VM_TYPE={{ user `vm_type` }}", 93 | "TARGET={{ user `target_version` }}", 94 | "TARGET_REPOS={{ user `target_version` }}", 95 | "ARCH={{ user `arch` }}", 96 | "CLOUDINIT=0", 97 | "SISYPHUS=0", 98 | "STEP_DIR=/tmp/steps" 99 | ] 100 | }, 101 | { 102 | "type": "ansible", 103 | "playbook_file": "./ansible/alt-generate.yml", 104 | "user": "vagrant", 105 | "extra_arguments": [ "--extra-vars", "version={{user `version`}} name_host={{user `name`}} type={{user `type`}}"] 106 | } 107 | ], 108 | 109 | "post-processors": [ 110 | { 111 | "type": "vagrant", 112 | "output": "boxes/{{user `name`}}/libvirt/{{user `version`}}/{{user `name`}}-{{user `version`}}-{{user `type`}}.box", 113 | "include": [ 114 | "data/Vagrantfile", 115 | "data/info.json" 116 | ] 117 | }, 118 | { 119 | "output": "manifest.json", 120 | "strip_path": true, 121 | "type": "manifest", 122 | "custom_data": { 123 | "version": "{{user `version`}}" 124 | } 125 | }, 126 | { 127 | "inline": [ 128 | "jq . manifest.json" 129 | ], 130 | "type": "shell-local" 131 | } 132 | ] 133 | } 134 | -------------------------------------------------------------------------------- /README.ru.md: -------------------------------------------------------------------------------- 1 | 2 | **Содержание** 3 | 4 | - [ВНИМАНИЕ!](#внимание) 5 | - [Описание](#описание) 6 | - [Цель проекта](#цель-проекта) 7 | - [Необходимые условия для запуска](#необходимые-условия-для-запуска) 8 | - [Первые шаги](#первые-шаги) 9 | - [Настроить переменные в файле astra-common-x.x.x-netinst.json](#настроить-переменные-в-файле-astra-common-xxx-netinstjson) 10 | - [Настроить vars.yml](#настроить-varsyml) 11 | - [Запуск сборки машины](#запуск-сборки-машины) 12 | - [Сборка виртуальной машины c GUI](#сборка-виртуальной-машины-c-gui) 13 | - [Сборка виртуальной машины без GUI](#сборка-виртуальной-машины-без-gui) 14 | 15 | 16 | 17 | 18 | # ВНИМАНИЕ! 19 | Данный проект находится в стадии alpha! 20 | 21 | # Описание 22 | 23 | ## Цель проекта 24 | Проект для автоматического создания витуальных машин `vagrant` на основе `Astra Linux Common Edition` с помошью инструмента `packer`. 25 | 26 | ## Необходимые условия для запуска 27 | 28 | - (обязательно) `packer` == 1.7.1 29 | - (обязательно) `vagrant` => 2.2.15 30 | - (обязательно) `ansible` => 2.9.6 31 | 32 | ## Первые шаги 33 | 34 | ### Настроить переменные в файле astra-common-x.x.x-netinst.json 35 | Для корректной сборки проекта необходимо заменить некоторые переменные в секции `variables` данного файла: 36 | 37 | | Замена | Имя поля | Описание | 38 | |---------------|--------------|-----------------------------------------------------------------------------------------------| 39 | | [обязательно] | `ip_address` | ip-адрес машины на которой происходит сборка виртуальной машины. | 40 | | [опционально] | `cpus` | Количество ядер для сборки. | 41 | | [опционально] | `name` | hostname виртуальной машины. | 42 | | [опционально] | `domain` | domain виртуальной машины. | 43 | | [обязательно] | `version` | Версия ОС - используется в нескольких местах для создания структур папок и именования файлов. | 44 | | [не менять ] | `user` | Пользователь от имени которого будет производиться преднастройка машины. | 45 | | [не менять ] | `password` | Пароль пользователя для настройки машины | 46 | | [опционально] | `size` | Размер HDD. Выставлено значение "30000". | 47 | | [опционально] | `mirror` | Сайт с которого будет скачиваться iso-образ. | 48 | | [обязательно] | `md5sum` | Контрольная сумма md5 для iso-образа | 49 | 50 | Настоятельно рекомендуется не менять значение `user` и `password` - используются принятые в сообществе значения для данных переменных. В противном случае будет необходимо дополнительно настраивать `ansible` для работы с новыми значениями данных полей. 51 | 52 | ### Настроить vars.yml 53 | Данный файл находится в каталоге `ansible/vars` 54 | 55 | Все переменные (целых три) дублируют переменнные `packer`. 56 | 57 | ## Запуск сборки машины 58 | 59 | ### Сборка виртуальной машины c GUI 60 | 61 | Запуск сборки выполняется командой: 62 | 63 | ``` shell 64 | packer build -var version=x.x.x -var type=Desktop astra-common-x.x.x-netinst.json 65 | ``` 66 | 67 | Параметр `version` не является обязательным. 68 | 69 | Параметр `type` является обязательным и должен принимать значение `Desktop` или `Server` - в зависимости от того какую версию вы хотите в итоге получить. 70 | 71 | Все значения `x.x.x` необходимо заменить реальными значениями. А так же проверить что в папке `http` существует файл вида `astra-orel-x.x.x-Desktop.cfg` или ``astra-orel-x.x.x-Server.cfg`` 72 | 73 | По окончании сборки в терминале должно появиться сообщение следующего вида 74 | 75 | ``` shell 76 | Build 'astra-orel' finished after 1 hour 50 minutes. 77 | 78 | ==> Wait completed after 1 hour 50 minutes 79 | 80 | ==> Builds finished. The artifacts of successful builds are: 81 | --> astra-orel: 'libvirt' provider box: boxes/astra-orel/libvirt/x.x.x/astra-orel-x.x.x.box 82 | ``` 83 | 84 | ### Сборка виртуальной машины без GUI 85 | 86 | !! Раздел в разработке 87 | -------------------------------------------------------------------------------- /README.en.md: -------------------------------------------------------------------------------- 1 | 2 | **Table of Contents** 3 | 4 | - [WARNING!](#warning) 5 | - [Boxes description](#boxes-description) 6 | - [Prerequisites](#prerequisites) 7 | - [Build vagrant box](#build-vagrant-box) 8 | - [Install your new box](#install-your-new-box) 9 | - [Vagrant](#vagrant) 10 | - [Getting Started](#getting-started) 11 | - [FB Post](#fb-post) 12 | 13 | 14 | 15 | # WARNING! 16 | Project in ALPHA state! 17 | 18 | # Description 19 | 20 | ## Project Goal 21 | 22 | This project goal - create `pcaker` teamplate usefull for creation `vagrant box` with debian derivative `Astra Linux Common Edition`. 23 | 24 | ## Prerequisites 25 | 26 | - (required) `packer` == 1.6.5 27 | - (required) `vagrant` => 2.2.13 28 | - (required) `ansible` => 2.10.2 29 | 30 | 31 | ## Getting started 32 | 33 | ### Configure variables in astra-common-x.x.x-netinst.json 34 | 35 | For correct working pipeline you should correct this variables in file: 36 | 37 | 38 | | Level | Variable | Description | 39 | |--------------|--------------|--------------------------------------------------------------------------------------| 40 | | [required] | `ip_address` | ip-address of host machine. | 41 | | [optional] | `cpus` | CPU cores for construction. | 42 | | [optional] | `name` | hostname of VM. | 43 | | [optional] | `domain` | domain of VM. | 44 | | [required] | `version` | Operatin System Version - used for generation some files and file-structure creation | 45 | | [do not edit]| `user` | Default username unprivilaged user. | 46 | | [do not edit]| `password` | Default password unprivilaged user. | 47 | | [optional] | `size` | HDD virchual size. Default variable "30000" bytes. | 48 | | [optional] | `mirror` | URI for iso-image. | 49 | | [required] | `md5sum` | MD5 for iso-image. | 50 | 51 | ### Configure variables in ansible/vars.yml 52 | 53 | !! Doc in progress 54 | 55 | ## Generate new box 56 | 57 | ### Generate box with GUI 58 | 59 | Command to run `packer`: 60 | 61 | ``` shell 62 | packer build -var version=x.x.x -var type=Desktop astra-common-x.x.x-netinst.json 63 | ``` 64 | 65 | Variable `version` not required. 66 | 67 | Variable `type` is required and shuld be `Desktop` or `Server`. Depend of witch type you need. 68 | 69 | All variables like `x.x.x` shuld be replaced with actual var. Need attention to file `astra-orel-x.x.x-Desktop.cfg` or `astra-orel-x.x.x-Server.cfg` at `http` directory. 70 | 71 | At the end of process you shuld see something like: 72 | 73 | ``` shell 74 | Build 'astra-orel' finished after 1 hour 50 minutes. 75 | 76 | ==> Wait completed after 1 hour 50 minutes 77 | 78 | ==> Builds finished. The artifacts of successful builds are: 79 | --> astra-orel: 'libvirt' provider box: boxes/astra-orel/libvirt/x.x.x/astra-orel-x.x.x-Desktop.box 80 | ``` 81 | ### Generate box without GUI 82 | 83 | !! Work in progress 84 | 85 | ## Install your new box 86 | 87 | 88 | ``` 89 | $ vagrant box add astra-orel-x.x.x boxes/astra-orel/libvirt/x.x.x/astra-orel-x.x.x-Desktop.box --force 90 | ``` 91 | 92 | The VM image has been imported to vagrant, it's now available on your system. 93 | 94 | 95 | ## Vagrant 96 | 97 | ### Getting Started 98 | 99 | To use this image with Vagrant, create a vagrant file: 100 | 101 | ``` 102 | $ vagrant init astra-orel-x.x.x-Desktop 103 | ``` 104 | 105 | 106 | Add this line in `Vagrantfile`: 107 | 108 | ``` 109 | config.vm.synced_folder '.', '/home/vagrant/sync', disabled: true 110 | ``` 111 | 112 | 113 | And initialize the vm: 114 | 115 | ``` 116 | $ vagrant up --provider libvirt 117 | ``` 118 | 119 | 120 | ### FB Post 121 | Hello from cold Russian Capital! 122 | 123 | Let me introduce you my first packer template and another debian based distro. 124 | 125 | I need some help with testing this template. On my machine all work pretty well. But i havent another one to test in different circumstances. https://github.com/stillru/astralinux-packer-template 126 | -------------------------------------------------------------------------------- /http/astra-orel-1.12.29-Desktop.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-orel 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | d-i partman-auto/method string regular 44 | d-i partman-auto/purge_lvm_from_device boolean true 45 | d-i partman-lvm/confirm boolean true 46 | d-i partman-auto/choose_recipe select atomic 47 | d-i partman/confirm_write_new_label boolean true 48 | d-i partman/choose_partition select finish 49 | d-i partman/confirm boolean true 50 | d-i partman-auto-crypto/erase_disks boolean true 51 | d-i partman-basicfilesystems/no_swap boolean true 52 | d-i partman-target/mount_failed boolean true 53 | d-i partman-partitioning/unknown_label boolean true 54 | d-i partman-auto/purge_lvm_from_device string true 55 | d-i partman-lvm/vgdelete_confirm boolean true 56 | d-i partman/confirm_write_new_label string true 57 | d-i partman-lvm/confirm boolean true 58 | d-i partman/confirm_nooverwrite boolean true 59 | 60 | d-i base-installer/kernel/image string linux-image-generic 61 | d-i base-installer/install-recommends boolean false 62 | 63 | d-i passwd/make-user boolean true 64 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 65 | d-i passwd/user-fullname string vagrant 66 | d-i passwd/username string vagrant 67 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 68 | 69 | d-i debian-installer/allow_unauthenticated string true 70 | 71 | 72 | tasksel tasksel/first multiselect Base packages, Fly desktop, SSH server 73 | tasksel tasksel/astra-feat-setup multiselect 74 | 75 | d-i pkgsel/include string \ 76 | openssh-server \ 77 | curl \ 78 | emacs-nox \ 79 | python3-pip \ 80 | build-essential \ 81 | # fly-dm \ 82 | # fly-admin-dm \ 83 | # fly-wm \ 84 | # fly-qdm \ 85 | # fly-fm \ 86 | # fly-all-network \ 87 | # fly-admin-wm \ 88 | # astra-int-check \ 89 | # network-manager \ 90 | # network-manager-gnome \ 91 | xterm 92 | 93 | d-i astra-additional-setup/additional-settings boolean false 94 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 95 | 96 | tripwire tripwire/use-localkey boolean false 97 | tripwire tripwire/use-sitekey boolean false 98 | tripwire tripwire/installed note ok 99 | portsentry portsentry/warn_no_block note ok 100 | astra-license astra-license/license boolean true 101 | krb5-config krb5-config/kerberos_servers string 102 | libnss-ldapd libnss-ldapd/ldap-base string 103 | libnss-ldapd libnss-ldapd/ldap-uris string 104 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 105 | ald-client ald-client/make_config boolean false 106 | ald-client ald-client/manual_configure false 107 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 108 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 109 | d-i console-cyrillic/switch select "Клавиша Menu" 110 | d-i console-cyrillic/toggle select Control+Shift 111 | d-i samba-common/dhcp boolean false 112 | d-i samba-common/workgroup string testgroup1 113 | 114 | popularity-contest popularity-contest/participate boolean false 115 | 116 | d-i grub-installer/only_debian boolean true 117 | 118 | grub-installer grub-installer/choose_bootdev select /dev/vda 119 | d-i grub-pc/install_devices multiselect /dev/vda 120 | 121 | d-i finish-install/reboot_in_progress note 122 | d-i debian-installer/exit/reboot boolean true 123 | 124 | d-i preseed/late_command string \ 125 | cd /target; \ 126 | wget http://192.168.1.10:8999/latecommand.sh; \ 127 | chmod +x ./latecommand.sh; \ 128 | chroot ./ ./latecommand.sh; \ 129 | rm -f ./latecommand.sh; \ 130 | sleep 120; 131 | -------------------------------------------------------------------------------- /http/astra-orel-2.12.29-Desktop.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-orel 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | d-i partman-auto/method string regular 44 | d-i partman-auto/purge_lvm_from_device boolean true 45 | d-i partman-lvm/confirm boolean true 46 | d-i partman-auto/choose_recipe select atomic 47 | d-i partman/confirm_write_new_label boolean true 48 | d-i partman/choose_partition select finish 49 | d-i partman/confirm boolean true 50 | d-i partman-auto-crypto/erase_disks boolean true 51 | d-i partman-basicfilesystems/no_swap boolean true 52 | d-i partman-target/mount_failed boolean true 53 | d-i partman-partitioning/unknown_label boolean true 54 | d-i partman-auto/purge_lvm_from_device string true 55 | d-i partman-lvm/vgdelete_confirm boolean true 56 | d-i partman/confirm_write_new_label string true 57 | d-i partman-lvm/confirm boolean true 58 | d-i partman/confirm_nooverwrite boolean true 59 | 60 | d-i base-installer/kernel/image string linux-image-generic 61 | d-i base-installer/install-recommends boolean false 62 | 63 | d-i passwd/make-user boolean true 64 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 65 | d-i passwd/user-fullname string vagrant 66 | d-i passwd/username string vagrant 67 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 68 | 69 | d-i debian-installer/allow_unauthenticated string true 70 | 71 | 72 | tasksel tasksel/first multiselect Base packages, Fly desktop, SSH server 73 | tasksel tasksel/astra-feat-setup multiselect 74 | 75 | d-i pkgsel/include string \ 76 | openssh-server \ 77 | curl \ 78 | emacs-nox \ 79 | python3-pip \ 80 | build-essential \ 81 | # fly-dm \ 82 | # fly-admin-dm \ 83 | # fly-wm \ 84 | # fly-qdm \ 85 | # fly-fm \ 86 | # fly-all-network \ 87 | # fly-admin-wm \ 88 | # astra-int-check \ 89 | # network-manager \ 90 | # network-manager-gnome \ 91 | xterm 92 | 93 | d-i astra-additional-setup/additional-settings boolean false 94 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 95 | 96 | tripwire tripwire/use-localkey boolean false 97 | tripwire tripwire/use-sitekey boolean false 98 | tripwire tripwire/installed note ok 99 | portsentry portsentry/warn_no_block note ok 100 | astra-license astra-license/license boolean true 101 | krb5-config krb5-config/kerberos_servers string 102 | libnss-ldapd libnss-ldapd/ldap-base string 103 | libnss-ldapd libnss-ldapd/ldap-uris string 104 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 105 | ald-client ald-client/make_config boolean false 106 | ald-client ald-client/manual_configure false 107 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 108 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 109 | d-i console-cyrillic/switch select "Клавиша Menu" 110 | d-i console-cyrillic/toggle select Control+Shift 111 | d-i samba-common/dhcp boolean false 112 | d-i samba-common/workgroup string testgroup1 113 | 114 | popularity-contest popularity-contest/participate boolean false 115 | 116 | d-i grub-installer/only_debian boolean true 117 | 118 | grub-installer grub-installer/choose_bootdev select /dev/vda 119 | d-i grub-pc/install_devices multiselect /dev/vda 120 | 121 | d-i finish-install/reboot_in_progress note 122 | d-i debian-installer/exit/reboot boolean true 123 | 124 | d-i preseed/late_command string \ 125 | cd /target; \ 126 | wget http://192.168.1.10:8999/latecommand.sh; \ 127 | chmod +x ./latecommand.sh; \ 128 | chroot ./ ./latecommand.sh; \ 129 | rm -f ./latecommand.sh; \ 130 | sleep 120; 131 | -------------------------------------------------------------------------------- /http/astra-orel-2.12.40-Desktop.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-orel 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | d-i partman-auto/method string regular 44 | d-i partman-auto/purge_lvm_from_device boolean true 45 | d-i partman-lvm/confirm boolean true 46 | d-i partman-auto/choose_recipe select atomic 47 | d-i partman/confirm_write_new_label boolean true 48 | d-i partman/choose_partition select finish 49 | d-i partman/confirm boolean true 50 | d-i partman-auto-crypto/erase_disks boolean true 51 | d-i partman-basicfilesystems/no_swap boolean true 52 | d-i partman-target/mount_failed boolean true 53 | d-i partman-partitioning/unknown_label boolean true 54 | d-i partman-auto/purge_lvm_from_device string true 55 | d-i partman-lvm/vgdelete_confirm boolean true 56 | d-i partman/confirm_write_new_label string true 57 | d-i partman-lvm/confirm boolean true 58 | d-i partman/confirm_nooverwrite boolean true 59 | 60 | d-i base-installer/kernel/image string linux-image-generic 61 | d-i base-installer/install-recommends boolean false 62 | 63 | d-i passwd/make-user boolean true 64 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 65 | d-i passwd/user-fullname string vagrant 66 | d-i passwd/username string vagrant 67 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 68 | 69 | d-i debian-installer/allow_unauthenticated string true 70 | 71 | 72 | tasksel tasksel/first multiselect Base packages, Fly desktop, SSH server 73 | tasksel tasksel/astra-feat-setup multiselect 74 | 75 | d-i pkgsel/include string \ 76 | openssh-server \ 77 | curl \ 78 | emacs-nox \ 79 | python3-pip \ 80 | build-essential \ 81 | # fly-dm \ 82 | # fly-admin-dm \ 83 | # fly-wm \ 84 | # fly-qdm \ 85 | # fly-fm \ 86 | # fly-all-network \ 87 | # fly-admin-wm \ 88 | # astra-int-check \ 89 | # network-manager \ 90 | # network-manager-gnome \ 91 | xterm 92 | 93 | d-i astra-additional-setup/additional-settings boolean false 94 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 95 | 96 | tripwire tripwire/use-localkey boolean false 97 | tripwire tripwire/use-sitekey boolean false 98 | tripwire tripwire/installed note ok 99 | portsentry portsentry/warn_no_block note ok 100 | astra-license astra-license/license boolean true 101 | krb5-config krb5-config/kerberos_servers string 102 | libnss-ldapd libnss-ldapd/ldap-base string 103 | libnss-ldapd libnss-ldapd/ldap-uris string 104 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 105 | ald-client ald-client/make_config boolean false 106 | ald-client ald-client/manual_configure false 107 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 108 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 109 | d-i console-cyrillic/switch select "Клавиша Menu" 110 | d-i console-cyrillic/toggle select Control+Shift 111 | d-i samba-common/dhcp boolean false 112 | d-i samba-common/workgroup string testgroup1 113 | 114 | popularity-contest popularity-contest/participate boolean false 115 | 116 | d-i grub-installer/only_debian boolean true 117 | 118 | grub-installer grub-installer/choose_bootdev select /dev/vda 119 | d-i grub-pc/install_devices multiselect /dev/vda 120 | 121 | d-i finish-install/reboot_in_progress note 122 | d-i debian-installer/exit/reboot boolean true 123 | 124 | d-i preseed/late_command string \ 125 | cd /target; \ 126 | wget http://192.168.1.10:8999/latecommand.sh; \ 127 | chmod +x ./latecommand.sh; \ 128 | chroot ./ ./latecommand.sh; \ 129 | rm -f ./latecommand.sh; \ 130 | sleep 120; 131 | -------------------------------------------------------------------------------- /http/astra-orel-1.12.29-Minimal.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-minimal 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | d-i partman-auto/method string regular 44 | d-i partman-auto/purge_lvm_from_device boolean true 45 | d-i partman-lvm/confirm boolean true 46 | d-i partman-auto/choose_recipe select atomic 47 | d-i partman/confirm_write_new_label boolean true 48 | d-i partman/choose_partition select finish 49 | d-i partman/confirm boolean true 50 | d-i partman-auto-crypto/erase_disks boolean true 51 | d-i partman-basicfilesystems/no_swap boolean true 52 | d-i partman-target/mount_failed boolean true 53 | d-i partman-partitioning/unknown_label boolean true 54 | d-i partman-auto/purge_lvm_from_device string true 55 | d-i partman-lvm/vgdelete_confirm boolean true 56 | d-i partman/confirm_write_new_label string true 57 | d-i partman-lvm/confirm boolean true 58 | d-i partman/confirm_nooverwrite boolean true 59 | 60 | d-i base-installer/kernel/image string linux-image-generic 61 | d-i base-installer/install-recommends boolean false 62 | 63 | d-i passwd/make-user boolean true 64 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 65 | d-i passwd/user-fullname string vagrant 66 | d-i passwd/username string vagrant 67 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 68 | 69 | d-i debian-installer/allow_unauthenticated string true 70 | 71 | 72 | tasksel tasksel/first multiselect Base packages, SSH server 73 | tasksel tasksel/astra-feat-setup multiselect 74 | 75 | d-i pkgsel/include string \ 76 | curl \ 77 | emacs-nox \ 78 | # fly-dm \ 79 | # fly-admin-dm \ 80 | # fly-wm \ 81 | # fly-qdm \ 82 | # fly-fm \ 83 | # fly-all-network \ 84 | # fly-admin-wm \ 85 | # astra-int-check \ 86 | network-manager 87 | 88 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 89 | d-i astra-additional-setup/automatic-network-disable select false 90 | 91 | tripwire tripwire/use-localkey boolean false 92 | tripwire tripwire/use-sitekey boolean false 93 | tripwire tripwire/installed note ok 94 | portsentry portsentry/warn_no_block note ok 95 | astra-license astra-license/license boolean true 96 | krb5-config krb5-config/kerberos_servers string 97 | libnss-ldapd libnss-ldapd/ldap-base string 98 | libnss-ldapd libnss-ldapd/ldap-uris string 99 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 100 | ald-client ald-client/make_config boolean false 101 | ald-client ald-client/manual_configure false 102 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 103 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 104 | d-i console-cyrillic/switch select "Клавиша Menu" 105 | d-i console-cyrillic/toggle select Control+Shift 106 | d-i samba-common/dhcp boolean false 107 | d-i samba-common/workgroup string testgroup1 108 | 109 | popularity-contest popularity-contest/participate boolean false 110 | 111 | d-i grub-installer/only_debian boolean true 112 | 113 | grub-installer grub-installer/choose_bootdev select /dev/vda 114 | d-i grub-pc/install_devices multiselect /dev/vda 115 | 116 | d-i finish-install/reboot_in_progress note 117 | d-i debian-installer/exit/reboot boolean true 118 | 119 | d-i preseed/late_command string \ 120 | in-target sh -c 'mkdir -p --mode=0700 /home/vagrant/.ssh && curl -Lo /home/vagrant/.ssh/authorized_keys "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub" && chmod 0600 /home/vagrant/.ssh/authorized_keys && chown -R vagrant:vagrant /home/vagrant/.ssh'; \ 121 | in-target sh -c 'mkdir -p --mode=0700 /root/.ssh && curl -Lo /root/.ssh/authorized_keys "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub" && chmod 0600 /root/.ssh/authorized_keys && chown -R root:root /root/.ssh'; \ 122 | in-target sh -c 'sed -i "s/^#PermitRootLogin.*\$/PermitRootLogin prohibit-password/g" /etc/ssh/sshd_config'; \ 123 | in-target sh -c 'sed -i "s/^#PasswordAuthentication.*\$/PasswordAuthentication yes/g" /etc/ssh/sshd_config'; \ 124 | in-target sh -c 'apt-get --yes purge linux-image-4.15.3-2-hardened'; \ 125 | in-tagert sh -c 'systemctl enable ssh'; \ 126 | in-tagert sh -c 'echo Done'; \ 127 | in-tagret sh -c 'sync'; 128 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Кодекс Поведения участника 2 | 3 | ## Наши обязательства 4 | 5 | Мы, как участники, авторы и лидеры обязуемся сделать участие в сообществе 6 | свободным от притеснений для всех, независимо от возраста, телосложения, 7 | видимых или невидимых ограничений способности, этнической принадлежности, 8 | половых признаков, гендерной идентичности и выражения, уровня опыта, 9 | образования, социо-экономического статуса, национальности, внешности, 10 | расы, религии, или сексуальной идентичности и ориентации. 11 | 12 | Мы обещаем действовать и взаимодействовать таким образом, чтобы вносить вклад в открытое, 13 | дружелюбное, многообразное, инклюзивное и здоровое сообщество. 14 | 15 | ## Наши стандарты 16 | 17 | Примеры поведения, создающие условия для благоприятных взаимоотношений включают в себя: 18 | 19 | * Проявление доброты и эмпатии к другим участникам проекта 20 | * Уважение к чужой точке зрения и опыту 21 | * Конструктивная критика и принятие конструктивной критики 22 | * Принятие ответственности, принесение извинений тем, кто пострадал от наших ошибок 23 | и извлечение уроков из опыта 24 | * Ориентирование на то, что лучше подходит для сообщества, а не только для нас лично 25 | 26 | Примеры неприемлемого поведения участников включают в себя: 27 | 28 | * Использование выражений или изображений сексуального характера и нежелательное сексуальное внимание или домогательство в любой форме 29 | * Троллинг, оскорбительные или уничижительные комментарии, переход на личности или затрагивание политических убеждений 30 | * Публичное или приватное домогательство 31 | * Публикация личной информации других лиц, например, физического или электронного адреса, без явного разрешения 32 | * Иное поведение, которое обоснованно считать неуместным в профессиональной обстановке 33 | 34 | ## Обязанности 35 | 36 | Лидеры сообщества отвечают за разъяснение и применение наших стандартов приемлемого 37 | поведения и будут предпринимать соответствующие и честные меры по исправлению положения 38 | в ответ на любое поведение, которое они сочтут неприемлемым, угрожающим, оскорбительным или вредным. 39 | 40 | Лидеры сообщества обладают правом и обязанностью удалять, редактировать или отклонять 41 | комментарии, коммиты, код, изменения в вики, вопросы и другой вклад, который не совпадает 42 | с Кодексом Поведения, и предоставят причины принятого решения, когда сочтут нужным. 43 | 44 | ## Область применения 45 | 46 | Данный Кодекс Поведения применим во всех во всех публичных физических и цифровых пространства сообщества, 47 | а также когда человек официально представляет сообщество в публичных местах. 48 | Примеры представления проекта или сообщества включают использование официальной электронной почты, 49 | публикации в официальном аккаунте в социальных сетях, 50 | или упоминания как представителя в онлайн или оффлайн мероприятии. 51 | 52 | ## Приведение в исполнение 53 | 54 | О случаях домогательства, а так же оскорбительного или иного другого неприемлемого 55 | поведения можно сообщить ответственным лидерам сообщества с помощью [mailto:still.ru@gmail.com]. 56 | Все жалобы будут рассмотрены и расследованы оперативно и беспристрастно. 57 | 58 | Все лидеры сообщества обязаны уважать неприкосновенность частной жизни и личную 59 | неприкосновенность автора сообщения. 60 | 61 | ## Руководство по исполнению 62 | 63 | Лидеры сообщества будут следовать следующим Принципам Воздействия в Сообществе, 64 | чтобы определить последствия для тех, кого они считают виновными в нарушении данного Кодекса Поведения: 65 | 66 | ### 1. Исправление 67 | 68 | **Общественное влияние**: Использование недопустимой лексики или другое поведение, 69 | считающиеся непрофессиональным или нежелательным в сообществе. 70 | 71 | **Последствия**: Личное, письменное предупреждение от лидеров сообщества, 72 | объясняющее суть нарушения и почему такое поведение 73 | было неуместно. Лидеры сообщества могут попросить принести публичное извинение. 74 | 75 | ### 2. Предупреждение 76 | 77 | **Общественное влияние**: Нарушение в результате одного инцидента или серии действий. 78 | 79 | **Последствия**: Предупреждение о последствиях в случае продолжающегося неуместного поведения. 80 | На определенное время не допускается взаимодействие с людьми, вовлеченными в инцидент, 81 | включая незапрошенное взаимодействие 82 | с теми, кто обеспечивает соблюдение Кодекса. Это включает в себя избегание взаимодействия 83 | в публичных пространствах, а так же во внешних каналах, 84 | таких как социальные сети. Нарушение этих правил влечет за собой временный или вечный бан. 85 | 86 | ### 3. Временный бан 87 | 88 | **Общественное влияние**: Серьёзное нарушение стандартов сообщества, 89 | включая продолжительное неуместное поведение. 90 | 91 | **Последствия**: Временный запрет (бан) на любое взаимодействие 92 | или публичное общение с сообществом на определенный период времени. 93 | На этот период не допускается публичное или личное взаимодействие с людьми, 94 | вовлеченными в инцидент, включая незапрошенное взаимодействие 95 | с теми, кто обеспечивает соблюдение Кодекса. 96 | Нарушение этих правил влечет за собой вечный бан. 97 | 98 | ### 4. Вечный бан 99 | 100 | **Общественное влияние**: Демонстрация систематических нарушений стандартов сообщества, 101 | включая продолжающееся неуместное поведение, домогательство до отдельных лиц, 102 | или проявление агрессии либо пренебрежительного отношения к категориям лиц. 103 | 104 | **Последствия**: Вечный запрет на любое публичное взаимодействие с сообществом. 105 | 106 | ## Атрибуция 107 | 108 | Данный Кодекс Поведения основан на [Кодекс Поведения участника][homepage], 109 | версии 2.0, доступной по адресу 110 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 111 | 112 | Принципы Воздействия в Сообществе были вдохновлены [Mozilla's code of conduct 113 | enforcement ladder](https://github.com/mozilla/diversity). 114 | 115 | [homepage]: https://www.contributor-covenant.org 116 | 117 | Ответы на общие вопросы о данном кодексе поведения ищите на странице FAQ: 118 | https://www.contributor-covenant.org/faq. Переводы доступны по адресу 119 | https://www.contributor-covenant.org/translations. 120 | -------------------------------------------------------------------------------- /http/astra-orel-2.12.42-1-Server.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020-2021, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-orel 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | d-i partman-auto/method string lvm 44 | d-i partman-lvm/device_remove_lvm boolean true 45 | d-i partman-lvm/confirm boolean true 46 | d-i partman-lvm/confirm_nooverwrite boolean true 47 | 48 | # PartMan LVM Method 49 | # first drive is selected and selected only. 50 | # 1. /boot partition size 512mb. 51 | # 2. swap will be x1.5 of the pysical RAM but not more then 12G. 52 | # 3. / - root is fixed to 30G. 53 | 54 | d-i partman/early_command string \ 55 | debconf-set partman-auto/disk "$(list-devices disk | head -n1)"; \ 56 | debconf-set grub-installer/bootdev "$(list-devices disk | head -n1)"; \ 57 | TMEM=$(($(sed -n 's/^MemTotal: \+\([0-9]*\) kB/\1/p' /proc/meminfo) / 1024)); \ 58 | DSWAP=$(expr $TMEM \* 150 \/ 100); \ 59 | if [ "${DSWAP}" -gt "12288" ]; then \ 60 | DSWAP=12288; \ 61 | fi; \ 62 | debconf-set partman-auto/expert_recipe "boot-root :: \ 63 | 300 512 512 ext4 method{ format } \ 64 | \$primary{ } \$bootable{ } \ 65 | format{ } use_filesystem{ } filesystem{ ext4 } \ 66 | mountpoint{ /boot } \ 67 | . \ 68 | ${DSWAP} ${DSWAP} ${DSWAP} linux-swap method{ swap } \ 69 | format{ } \$lvmok{ } lv_name{ swap } \ 70 | . \ 71 | 1 1000 10000000000 ext4 method{ lvm } \ 72 | \$lvmok{ } mountpoint{ / } lv_name{ root } \ 73 | format{ } use_filesystem{ } filesystem{ ext4 } \ 74 | options/relatime{ relatime } \ 75 | ."; 76 | 77 | 78 | d-i partman-partitioning/confirm_write_new_label boolean true 79 | d-i partman/choose_partition select finish 80 | d-i partman/confirm boolean true 81 | d-i partman/confirm_nooverwrite boolean true 82 | 83 | d-i base-installer/kernel/image string linux-image-generic 84 | d-i base-installer/install-recommends boolean false 85 | 86 | d-i passwd/make-user boolean true 87 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 88 | d-i passwd/user-fullname string vagrant 89 | d-i passwd/username string vagrant 90 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 91 | 92 | d-i debian-installer/allow_unauthenticated string true 93 | 94 | 95 | tasksel tasksel/first multiselect minimal 96 | tasksel tasksel/astra-feat-setup multiselect 97 | 98 | d-i pkgsel/include string \ 99 | sudo \ 100 | openssh-server \ 101 | curl \ 102 | emacs-nox \ 103 | python3-pip \ 104 | build-essential \ 105 | xfsprogs 106 | # fly-dm \ 107 | # fly-admin-dm \ 108 | # fly-wm \ 109 | # fly-qdm \ 110 | # fly-fm \ 111 | # fly-all-network \ 112 | # fly-admin-wm \ 113 | # astra-int-check \ 114 | # network-manager \ 115 | # network-manager-gnome \ 116 | # xterm 117 | 118 | d-i astra-additional-setup/additional-settings boolean false 119 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 120 | 121 | tripwire tripwire/use-localkey boolean false 122 | tripwire tripwire/use-sitekey boolean false 123 | tripwire tripwire/installed note ok 124 | portsentry portsentry/warn_no_block note ok 125 | astra-license astra-license/license boolean true 126 | krb5-config krb5-config/kerberos_servers string 127 | libnss-ldapd libnss-ldapd/ldap-base string 128 | libnss-ldapd libnss-ldapd/ldap-uris string 129 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 130 | ald-client ald-client/make_config boolean false 131 | ald-client ald-client/manual_configure false 132 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 133 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 134 | d-i console-cyrillic/switch select "Клавиша Menu" 135 | d-i console-cyrillic/toggle select Control+Shift 136 | d-i samba-common/dhcp boolean false 137 | d-i samba-common/workgroup string testgroup1 138 | 139 | popularity-contest popularity-contest/participate boolean false 140 | 141 | d-i grub-installer/only_debian boolean true 142 | 143 | grub-installer grub-installer/choose_bootdev select /dev/vda 144 | d-i grub-pc/install_devices multiselect /dev/vda 145 | 146 | d-i finish-install/reboot_in_progress note 147 | d-i debian-installer/exit/reboot boolean true 148 | 149 | d-i preseed/late_command string \ 150 | cd /target; \ 151 | wget http://192.168.1.10:8999/latecommand.sh; \ 152 | chmod +x ./latecommand.sh; \ 153 | chroot ./ ./latecommand.sh; \ 154 | rm -f ./latecommand.sh; \ 155 | sleep 120; 156 | -------------------------------------------------------------------------------- /http/astra-orel-2.12.42-Server.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020-2021, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-orel 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | d-i partman-auto/method string lvm 44 | d-i partman-lvm/device_remove_lvm boolean true 45 | d-i partman-lvm/confirm boolean true 46 | d-i partman-lvm/confirm_nooverwrite boolean true 47 | 48 | # PartMan LVM Method 49 | # first drive is selected and selected only. 50 | # 1. /boot partition size 512mb. 51 | # 2. swap will be x1.5 of the pysical RAM but not more then 12G. 52 | # 3. / - root is fixed to 30G. 53 | 54 | d-i partman/early_command string \ 55 | debconf-set partman-auto/disk "$(list-devices disk | head -n1)"; \ 56 | debconf-set grub-installer/bootdev "$(list-devices disk | head -n1)"; \ 57 | TMEM=$(($(sed -n 's/^MemTotal: \+\([0-9]*\) kB/\1/p' /proc/meminfo) / 1024)); \ 58 | DSWAP=$(expr $TMEM \* 150 \/ 100); \ 59 | if [ "${DSWAP}" -gt "12288" ]; then \ 60 | DSWAP=12288; \ 61 | fi; \ 62 | debconf-set partman-auto/expert_recipe "boot-root :: \ 63 | 300 512 512 ext4 method{ format } \ 64 | \$primary{ } \$bootable{ } \ 65 | format{ } use_filesystem{ } filesystem{ ext4 } \ 66 | mountpoint{ /boot } \ 67 | . \ 68 | ${DSWAP} ${DSWAP} ${DSWAP} linux-swap method{ swap } \ 69 | format{ } \$lvmok{ } lv_name{ swap } \ 70 | . \ 71 | 1 1000 10000000000 ext4 method{ lvm } \ 72 | \$lvmok{ } mountpoint{ / } lv_name{ root } \ 73 | format{ } use_filesystem{ } filesystem{ ext4 } \ 74 | options/relatime{ relatime } \ 75 | ."; 76 | 77 | 78 | d-i partman-partitioning/confirm_write_new_label boolean true 79 | d-i partman/choose_partition select finish 80 | d-i partman/confirm boolean true 81 | d-i partman/confirm_nooverwrite boolean true 82 | 83 | d-i base-installer/kernel/image string linux-image-generic 84 | d-i base-installer/install-recommends boolean false 85 | 86 | d-i passwd/make-user boolean true 87 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 88 | d-i passwd/user-fullname string vagrant 89 | d-i passwd/username string vagrant 90 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 91 | 92 | d-i debian-installer/allow_unauthenticated string true 93 | 94 | 95 | tasksel tasksel/first multiselect minimal 96 | tasksel tasksel/astra-feat-setup multiselect 97 | 98 | d-i pkgsel/include string \ 99 | sudo \ 100 | openssh-server \ 101 | curl \ 102 | emacs-nox \ 103 | python3-pip \ 104 | build-essential \ 105 | xfsprogs 106 | # fly-dm \ 107 | # fly-admin-dm \ 108 | # fly-wm \ 109 | # fly-qdm \ 110 | # fly-fm \ 111 | # fly-all-network \ 112 | # fly-admin-wm \ 113 | # astra-int-check \ 114 | # network-manager \ 115 | # network-manager-gnome \ 116 | # xterm 117 | 118 | d-i astra-additional-setup/additional-settings boolean false 119 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 120 | 121 | tripwire tripwire/use-localkey boolean false 122 | tripwire tripwire/use-sitekey boolean false 123 | tripwire tripwire/installed note ok 124 | portsentry portsentry/warn_no_block note ok 125 | astra-license astra-license/license boolean true 126 | krb5-config krb5-config/kerberos_servers string 127 | libnss-ldapd libnss-ldapd/ldap-base string 128 | libnss-ldapd libnss-ldapd/ldap-uris string 129 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 130 | ald-client ald-client/make_config boolean false 131 | ald-client ald-client/manual_configure false 132 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 133 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 134 | d-i console-cyrillic/switch select "Клавиша Menu" 135 | d-i console-cyrillic/toggle select Control+Shift 136 | d-i samba-common/dhcp boolean false 137 | d-i samba-common/workgroup string testgroup1 138 | 139 | popularity-contest popularity-contest/participate boolean false 140 | 141 | d-i grub-installer/only_debian boolean true 142 | 143 | grub-installer grub-installer/choose_bootdev select /dev/vda 144 | d-i grub-pc/install_devices multiselect /dev/vda 145 | 146 | d-i finish-install/reboot_in_progress note 147 | d-i debian-installer/exit/reboot boolean true 148 | 149 | d-i preseed/late_command string \ 150 | cd /target; \ 151 | wget http://192.168.1.10:8999/latecommand.sh; \ 152 | chmod +x ./latecommand.sh; \ 153 | chroot ./ ./latecommand.sh; \ 154 | rm -f ./latecommand.sh; \ 155 | sleep 120; 156 | -------------------------------------------------------------------------------- /http/astra-orel-2.12.42-Desktop.cfg: -------------------------------------------------------------------------------- 1 | ########################## 2 | #Copyright 2020-2021, Stepan Illichevsky () 3 | 4 | 5 | d-i debian-installer/locale string ru_RU 6 | d-i debian-installer/locale select ru_RU.UTF-8 7 | d-i debian-installer/language string ru 8 | d-i debian-installer/country string RU 9 | d-i debian-installer/keymap string ru 10 | 11 | d-i console-tools/archs select at 12 | d-i console-keymaps-at/keymap select ru 13 | d-i console-setup/toggle string Alt+Shift 14 | d-i console-setup/layoutcode string ru 15 | d-i keyboard-configuration/toggle select Alt+Shift 16 | d-i keyboard-configuration/layoutcode string ru 17 | d-i keyboard-configuration/xkb-keymap select ru 18 | d-i languagechooser/language-name-fb select Russian 19 | d-i countrychooser/country-name select Russia 20 | 21 | d-i anna/no_kernel_modules select true 22 | 23 | d-i netcfg/choose_interface select auto 24 | 25 | d-i apt-setup/non-free boolean true 26 | d-i apt-setup/contrib boolean true 27 | d-i base-installer/kernel/image string linux-image-generic 28 | 29 | d-i netcfg/get_hostname string astra-orel 30 | d-i netcfg/get_hostname seen true 31 | d-i netcfg/get_domain string sjsma.home 32 | 33 | d-i apt-setup/services-select none 34 | d-i apt-setup/security_host string 35 | 36 | d-i netcfg/wireless_wep string 37 | 38 | d-i clock-setup/utc boolean true 39 | d-i time/zone string Europe/Moscow 40 | d-i clock-setup/ntp boolean true 41 | d-i clock-setup/ntp-server 0.pool.ntp.org 42 | 43 | #d-i partman-auto/method string regular 44 | #d-i partman-auto/purge_lvm_from_device boolean true 45 | #d-i partman-lvm/confirm boolean true 46 | #d-i partman-auto/choose_recipe select atomic 47 | #d-i partman/confirm_write_new_label boolean true 48 | #d-i partman/choose_partition select finish 49 | #d-i partman/confirm boolean true 50 | #d-i partman-auto-crypto/erase_disks boolean true 51 | #d-i partman-basicfilesystems/no_swap boolean true 52 | #d-i partman-target/mount_failed boolean true 53 | #d-i partman-partitioning/unknown_label boolean true 54 | #d-i partman-auto/purge_lvm_from_device string true 55 | #d-i partman-lvm/vgdelete_confirm boolean true 56 | #d-i partman/confirm_write_new_label string true 57 | #d-i partman-lvm/confirm boolean true 58 | #d-i partman/confirm_nooverwrite boolean true 59 | 60 | 61 | d-i partman-auto/method string lvm 62 | d-i partman-lvm/device_remove_lvm boolean true 63 | d-i partman-lvm/confirm boolean true 64 | d-i partman-lvm/confirm_nooverwrite boolean true 65 | 66 | # PartMan LVM Method 67 | # first drive is selected and selected only. 68 | # 1. /boot partition size 512mb. 69 | # 2. swap will be x1.5 of the pysical RAM but not more then 12G. 70 | # 3. / - root is fixed to 30G. 71 | 72 | d-i partman/early_command string \ 73 | debconf-set partman-auto/disk "$(list-devices disk | head -n1)"; \ 74 | debconf-set grub-installer/bootdev "$(list-devices disk | head -n1)"; \ 75 | TMEM=$(($(sed -n 's/^MemTotal: \+\([0-9]*\) kB/\1/p' /proc/meminfo) / 1024)); \ 76 | DSWAP=$(expr $TMEM \* 150 \/ 100); \ 77 | if [ "${DSWAP}" -gt "12288" ]; then \ 78 | DSWAP=12288; \ 79 | fi; \ 80 | debconf-set partman-auto/expert_recipe "boot-root :: \ 81 | 300 512 512 ext4 method{ format } \ 82 | \$primary{ } \$bootable{ } \ 83 | format{ } use_filesystem{ } filesystem{ ext4 } \ 84 | mountpoint{ /boot } \ 85 | . \ 86 | ${DSWAP} ${DSWAP} ${DSWAP} linux-swap method{ swap } \ 87 | format{ } \$lvmok{ } lv_name{ swap } \ 88 | . \ 89 | 1 1000 10000000000 ext4 method{ lvm } \ 90 | \$lvmok{ } mountpoint{ / } lv_name{ root } \ 91 | format{ } use_filesystem{ } filesystem{ ext4 } \ 92 | options/relatime{ relatime } \ 93 | ."; 94 | 95 | 96 | d-i partman-partitioning/confirm_write_new_label boolean true 97 | d-i partman/choose_partition select finish 98 | d-i partman/confirm boolean true 99 | d-i partman/confirm_nooverwrite boolean true 100 | 101 | 102 | d-i base-installer/kernel/image string linux-image-generic 103 | d-i base-installer/install-recommends boolean false 104 | 105 | d-i passwd/make-user boolean true 106 | d-i passwd/root-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 107 | d-i passwd/user-fullname string vagrant 108 | d-i passwd/username string vagrant 109 | d-i passwd/user-password-crypted password $1$wcfuUPwe$rnvj7bzYkfoM8I1nVGc.N0 110 | 111 | d-i debian-installer/allow_unauthenticated string true 112 | 113 | 114 | tasksel tasksel/first multiselect Base packages, Fly desktop, SSH server 115 | tasksel tasksel/astra-feat-setup multiselect 116 | 117 | d-i pkgsel/include string \ 118 | openssh-server \ 119 | curl \ 120 | emacs-nox \ 121 | python3-pip \ 122 | build-essential \ 123 | xterm 124 | 125 | d-i astra-additional-setup/additional-settings boolean false 126 | d-i desktop-tablet-mode-switch/tablet-mode boolean false 127 | 128 | tripwire tripwire/use-localkey boolean false 129 | tripwire tripwire/use-sitekey boolean false 130 | tripwire tripwire/installed note ok 131 | portsentry portsentry/warn_no_block note ok 132 | astra-license astra-license/license boolean true 133 | krb5-config krb5-config/kerberos_servers string 134 | libnss-ldapd libnss-ldapd/ldap-base string 135 | libnss-ldapd libnss-ldapd/ldap-uris string 136 | libnss-ldapd libnss-ldapd/nsswitch multiselect services 137 | ald-client ald-client/make_config boolean false 138 | ald-client ald-client/manual_configure false 139 | astra-feat-setup astra-feat-setup/feat multiselect kiosk mode false 140 | astra-feat-setup astra-feat-setup/feat multiselect Служба ALD false 141 | d-i console-cyrillic/switch select "Клавиша Menu" 142 | d-i console-cyrillic/toggle select Control+Shift 143 | d-i samba-common/dhcp boolean false 144 | d-i samba-common/workgroup string testgroup1 145 | 146 | popularity-contest popularity-contest/participate boolean false 147 | 148 | d-i grub-installer/only_debian boolean true 149 | 150 | grub-installer grub-installer/choose_bootdev select /dev/vda 151 | d-i grub-pc/install_devices multiselect /dev/vda 152 | 153 | d-i finish-install/reboot_in_progress note 154 | d-i debian-installer/exit/reboot boolean true 155 | 156 | d-i preseed/late_command string \ 157 | cd /target; \ 158 | wget http://192.168.1.10:8999/latecommand.sh; \ 159 | chmod +x ./latecommand.sh; \ 160 | chroot ./ ./latecommand.sh; \ 161 | rm -f ./latecommand.sh; \ 162 | sleep 120; 163 | -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | # config file for ansible -- https://ansible.com/ 2 | # =============================================== 3 | 4 | # nearly all parameters can be overridden in ansible-playbook 5 | # or with command line flags. ansible will read ANSIBLE_CONFIG, 6 | # ansible.cfg in the current working directory, .ansible.cfg in 7 | # the home directory or /etc/ansible/ansible.cfg, whichever it 8 | # finds first 9 | 10 | [defaults] 11 | 12 | # some basic default values... 13 | 14 | #inventory = /etc/ansible/hosts 15 | #library = /usr/share/my_modules/ 16 | #module_utils = /usr/share/my_module_utils/ 17 | #remote_tmp = ~/.ansible/tmp 18 | #local_tmp = ~/.ansible/tmp 19 | #plugin_filters_cfg = /etc/ansible/plugin_filters.yml 20 | #forks = 5 21 | #poll_interval = 15 22 | #sudo_user = root 23 | #ask_sudo_pass = True 24 | #ask_pass = True 25 | #transport = smart 26 | #remote_port = 22 27 | #module_lang = C 28 | #module_set_locale = False 29 | 30 | # plays will gather facts by default, which contain information about 31 | # the remote system. 32 | # 33 | # smart - gather by default, but don't regather if already gathered 34 | # implicit - gather by default, turn off with gather_facts: False 35 | # explicit - do not gather by default, must say gather_facts: True 36 | #gathering = implicit 37 | 38 | # This only affects the gathering done by a play's gather_facts directive, 39 | # by default gathering retrieves all facts subsets 40 | # all - gather all subsets 41 | # network - gather min and network facts 42 | # hardware - gather hardware facts (longest facts to retrieve) 43 | # virtual - gather min and virtual facts 44 | # facter - import facts from facter 45 | # ohai - import facts from ohai 46 | # You can combine them using comma (ex: network,virtual) 47 | # You can negate them using ! (ex: !hardware,!facter,!ohai) 48 | # A minimal set of facts is always gathered. 49 | #gather_subset = all 50 | 51 | # some hardware related facts are collected 52 | # with a maximum timeout of 10 seconds. This 53 | # option lets you increase or decrease that 54 | # timeout to something more suitable for the 55 | # environment. 56 | # gather_timeout = 10 57 | 58 | # Ansible facts are available inside the ansible_facts.* dictionary 59 | # namespace. This setting maintains the behaviour which was the default prior 60 | # to 2.5, duplicating these variables into the main namespace, each with a 61 | # prefix of 'ansible_'. 62 | # This variable is set to True by default for backwards compatibility. It 63 | # will be changed to a default of 'False' in a future release. 64 | # ansible_facts. 65 | # inject_facts_as_vars = True 66 | 67 | # additional paths to search for roles in, colon separated 68 | roles_path = ./ansible/roles 69 | vars_path = ./ansible/vars 70 | 71 | # uncomment this to disable SSH key host checking 72 | #host_key_checking = False 73 | 74 | # change the default callback, you can only have one 'stdout' type enabled at a time. 75 | #stdout_callback = skippy 76 | 77 | 78 | ## Ansible ships with some plugins that require whitelisting, 79 | ## this is done to avoid running all of a type by default. 80 | ## These setting lists those that you want enabled for your system. 81 | ## Custom plugins should not need this unless plugin author specifies it. 82 | 83 | # enable callback plugins, they can output to stdout but cannot be 'stdout' type. 84 | #callback_whitelist = timer, mail 85 | 86 | # Determine whether includes in tasks and handlers are "static" by 87 | # default. As of 2.0, includes are dynamic by default. Setting these 88 | # values to True will make includes behave more like they did in the 89 | # 1.x versions. 90 | #task_includes_static = False 91 | #handler_includes_static = False 92 | 93 | # Controls if a missing handler for a notification event is an error or a warning 94 | #error_on_missing_handler = True 95 | 96 | # change this for alternative sudo implementations 97 | #sudo_exe = sudo 98 | 99 | # What flags to pass to sudo 100 | # WARNING: leaving out the defaults might create unexpected behaviours 101 | #sudo_flags = -H -S -n 102 | 103 | # SSH timeout 104 | #timeout = 10 105 | 106 | # default user to use for playbooks if user is not specified 107 | # (/usr/bin/ansible will use current user as default) 108 | #remote_user = root 109 | 110 | # logging is off by default unless this path is defined 111 | # if so defined, consider logrotate 112 | log_path = ./data/ansible.log 113 | 114 | # default module name for /usr/bin/ansible 115 | #module_name = command 116 | 117 | # use this shell for commands executed under sudo 118 | # you may need to change this to bin/bash in rare instances 119 | # if sudo is constrained 120 | #executable = /bin/sh 121 | 122 | # if inventory variables overlap, does the higher precedence one win 123 | # or are hash values merged together? The default is 'replace' but 124 | # this can also be set to 'merge'. 125 | #hash_behaviour = replace 126 | 127 | # by default, variables from roles will be visible in the global variable 128 | # scope. To prevent this, the following option can be enabled, and only 129 | # tasks and handlers within the role will see the variables there 130 | #private_role_vars = yes 131 | 132 | # list any Jinja2 extensions to enable here: 133 | #jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n 134 | 135 | # if set, always use this private key file for authentication, same as 136 | # if passing --private-key to ansible or ansible-playbook 137 | #private_key_file = /path/to/file 138 | 139 | # If set, configures the path to the Vault password file as an alternative to 140 | # specifying --vault-password-file on the command line. 141 | #vault_password_file = /path/to/vault_password_file 142 | 143 | # format of string {{ ansible_managed }} available within Jinja2 144 | # templates indicates to users editing templates files will be replaced. 145 | # replacing {file}, {host} and {uid} and strftime codes with proper values. 146 | #ansible_managed = '# Ansible managed: {file} generated on %Y-%m-%d %H:%M:%S by \n#\t\t{uid} on {host}' 147 | # {file}, {host}, {uid}, and the timestamp can all interfere with idempotence 148 | # in some situations so the default is a static string: 149 | ansible_managed = '# Ansible generated on %Y-%m-%d %H:%M:%S' 150 | 151 | # by default, ansible-playbook will display "Skipping [host]" if it determines a task 152 | # should not be run on a host. Set this to "False" if you don't want to see these "Skipping" 153 | # messages. NOTE: the task header will still be shown regardless of whether or not the 154 | # task is skipped. 155 | #display_skipped_hosts = True 156 | 157 | # by default, if a task in a playbook does not include a name: field then 158 | # ansible-playbook will construct a header that includes the task's action but 159 | # not the task's args. This is a security feature because ansible cannot know 160 | # if the *module* considers an argument to be no_log at the time that the 161 | # header is printed. If your environment doesn't have a problem securing 162 | # stdout from ansible-playbook (or you have manually specified no_log in your 163 | # playbook on all of the tasks where you have secret information) then you can 164 | # safely set this to True to get more informative messages. 165 | display_args_to_stdout = True 166 | 167 | # by default (as of 1.3), Ansible will raise errors when attempting to dereference 168 | # Jinja2 variables that are not set in templates or action lines. Uncomment this line 169 | # to revert the behavior to pre-1.3. 170 | #error_on_undefined_vars = False 171 | 172 | # by default (as of 1.6), Ansible may display warnings based on the configuration of the 173 | # system running ansible itself. This may include warnings about 3rd party packages or 174 | # other conditions that should be resolved if possible. 175 | # to disable these warnings, set the following value to False: 176 | #system_warnings = True 177 | 178 | # by default (as of 1.4), Ansible may display deprecation warnings for language 179 | # features that should no longer be used and will be removed in future versions. 180 | # to disable these warnings, set the following value to False: 181 | deprecation_warnings = True 182 | 183 | # (as of 1.8), Ansible can optionally warn when usage of the shell and 184 | # command module appear to be simplified by using a default Ansible module 185 | # instead. These warnings can be silenced by adjusting the following 186 | # setting or adding warn=yes or warn=no to the end of the command line 187 | # parameter string. This will for example suggest using the git module 188 | # instead of shelling out to the git command. 189 | # command_warnings = False 190 | 191 | 192 | # set plugin path directories here, separate with colons 193 | #action_plugins = /usr/share/ansible/plugins/action 194 | #become_plugins = /usr/share/ansible/plugins/become 195 | #cache_plugins = /usr/share/ansible/plugins/cache 196 | #callback_plugins = /usr/share/ansible/plugins/callback 197 | #connection_plugins = /usr/share/ansible/plugins/connection 198 | #lookup_plugins = /usr/share/ansible/plugins/lookup 199 | #inventory_plugins = /usr/share/ansible/plugins/inventory 200 | #vars_plugins = /usr/share/ansible/plugins/vars 201 | #filter_plugins = /usr/share/ansible/plugins/filter 202 | #test_plugins = /usr/share/ansible/plugins/test 203 | #terminal_plugins = /usr/share/ansible/plugins/terminal 204 | #strategy_plugins = /usr/share/ansible/plugins/strategy 205 | 206 | 207 | # by default, ansible will use the 'linear' strategy but you may want to try 208 | # another one 209 | #strategy = free 210 | 211 | # by default callbacks are not loaded for /bin/ansible, enable this if you 212 | # want, for example, a notification or logging callback to also apply to 213 | # /bin/ansible runs 214 | #bin_ansible_callbacks = False 215 | 216 | 217 | # don't like cows? that's unfortunate. 218 | # set to 1 if you don't want cowsay support or export ANSIBLE_NOCOWS=1 219 | #nocows = 1 220 | 221 | # set which cowsay stencil you'd like to use by default. When set to 'random', 222 | # a random stencil will be selected for each task. The selection will be filtered 223 | # against the `cow_whitelist` option below. 224 | #cow_selection = default 225 | #cow_selection = random 226 | 227 | # when using the 'random' option for cowsay, stencils will be restricted to this list. 228 | # it should be formatted as a comma-separated list with no spaces between names. 229 | # NOTE: line continuations here are for formatting purposes only, as the INI parser 230 | # in python does not support them. 231 | #cow_whitelist=bud-frogs,bunny,cheese,daemon,default,dragon,elephant-in-snake,elephant,eyes,\ 232 | # hellokitty,kitty,luke-koala,meow,milk,moofasa,moose,ren,sheep,small,stegosaurus,\ 233 | # stimpy,supermilker,three-eyes,turkey,turtle,tux,udder,vader-koala,vader,www 234 | 235 | # don't like colors either? 236 | # set to 1 if you don't want colors, or export ANSIBLE_NOCOLOR=1 237 | #nocolor = 1 238 | 239 | # if set to a persistent type (not 'memory', for example 'redis') fact values 240 | # from previous runs in Ansible will be stored. This may be useful when 241 | # wanting to use, for example, IP information from one group of servers 242 | # without having to talk to them in the same playbook run to get their 243 | # current IP information. 244 | #fact_caching = memory 245 | 246 | #This option tells Ansible where to cache facts. The value is plugin dependent. 247 | #For the jsonfile plugin, it should be a path to a local directory. 248 | #For the redis plugin, the value is a host:port:database triplet: fact_caching_connection = localhost:6379:0 249 | 250 | #fact_caching_connection=/tmp 251 | 252 | 253 | 254 | # retry files 255 | # When a playbook fails a .retry file can be created that will be placed in ~/ 256 | # You can enable this feature by setting retry_files_enabled to True 257 | # and you can change the location of the files by setting retry_files_save_path 258 | 259 | #retry_files_enabled = False 260 | #retry_files_save_path = ~/.ansible-retry 261 | 262 | # squash actions 263 | # Ansible can optimise actions that call modules with list parameters 264 | # when looping. Instead of calling the module once per with_ item, the 265 | # module is called once with all items at once. Currently this only works 266 | # under limited circumstances, and only with parameters named 'name'. 267 | squash_actions = apk,apt,dnf,homebrew,pacman,pkgng,yum,zypper 268 | 269 | # prevents logging of task data, off by default 270 | #no_log = False 271 | 272 | # prevents logging of tasks, but only on the targets, data is still logged on the master/controller 273 | #no_target_syslog = False 274 | 275 | # controls whether Ansible will raise an error or warning if a task has no 276 | # choice but to create world readable temporary files to execute a module on 277 | # the remote machine. This option is False by default for security. Users may 278 | # turn this on to have behaviour more like Ansible prior to 2.1.x. See 279 | # https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user 280 | # for more secure ways to fix this than enabling this option. 281 | #allow_world_readable_tmpfiles = False 282 | 283 | # controls the compression level of variables sent to 284 | # worker processes. At the default of 0, no compression 285 | # is used. This value must be an integer from 0 to 9. 286 | #var_compression_level = 9 287 | 288 | # controls what compression method is used for new-style ansible modules when 289 | # they are sent to the remote system. The compression types depend on having 290 | # support compiled into both the controller's python and the client's python. 291 | # The names should match with the python Zipfile compression types: 292 | # * ZIP_STORED (no compression. available everywhere) 293 | # * ZIP_DEFLATED (uses zlib, the default) 294 | # These values may be set per host via the ansible_module_compression inventory 295 | # variable 296 | #module_compression = 'ZIP_DEFLATED' 297 | 298 | # This controls the cutoff point (in bytes) on --diff for files 299 | # set to 0 for unlimited (RAM may suffer!). 300 | #max_diff_size = 1048576 301 | 302 | # This controls how ansible handles multiple --tags and --skip-tags arguments 303 | # on the CLI. If this is True then multiple arguments are merged together. If 304 | # it is False, then the last specified argument is used and the others are ignored. 305 | # This option will be removed in 2.8. 306 | #merge_multiple_cli_flags = True 307 | 308 | # Controls showing custom stats at the end, off by default 309 | #show_custom_stats = True 310 | 311 | # Controls which files to ignore when using a directory as inventory with 312 | # possibly multiple sources (both static and dynamic) 313 | #inventory_ignore_extensions = ~, .orig, .bak, .ini, .cfg, .retry, .pyc, .pyo 314 | 315 | # This family of modules use an alternative execution path optimized for network appliances 316 | # only update this setting if you know how this works, otherwise it can break module execution 317 | #network_group_modules=eos, nxos, ios, iosxr, junos, vyos 318 | 319 | # When enabled, this option allows lookups (via variables like {{lookup('foo')}} or when used as 320 | # a loop with `with_foo`) to return data that is not marked "unsafe". This means the data may contain 321 | # jinja2 templating language which will be run through the templating engine. 322 | # ENABLING THIS COULD BE A SECURITY RISK 323 | #allow_unsafe_lookups = False 324 | 325 | # set default errors for all plays 326 | #any_errors_fatal = False 327 | 328 | [inventory] 329 | # enable inventory plugins, default: 'host_list', 'script', 'auto', 'yaml', 'ini', 'toml' 330 | #enable_plugins = host_list, virtualbox, yaml, constructed 331 | 332 | # ignore these extensions when parsing a directory as inventory source 333 | #ignore_extensions = .pyc, .pyo, .swp, .bak, ~, .rpm, .md, .txt, ~, .orig, .ini, .cfg, .retry 334 | 335 | # ignore files matching these patterns when parsing a directory as inventory source 336 | #ignore_patterns= 337 | 338 | # If 'true' unparsed inventory sources become fatal errors, they are warnings otherwise. 339 | #unparsed_is_failed=False 340 | 341 | [privilege_escalation] 342 | #become=True 343 | #become_method=sudo 344 | #become_user=root 345 | #become_ask_pass=False 346 | 347 | [paramiko_connection] 348 | 349 | # uncomment this line to cause the paramiko connection plugin to not record new host 350 | # keys encountered. Increases performance on new host additions. Setting works independently of the 351 | # host key checking setting above. 352 | #record_host_keys=False 353 | 354 | # by default, Ansible requests a pseudo-terminal for commands executed under sudo. Uncomment this 355 | # line to disable this behaviour. 356 | #pty=False 357 | 358 | # paramiko will default to looking for SSH keys initially when trying to 359 | # authenticate to remote devices. This is a problem for some network devices 360 | # that close the connection after a key failure. Uncomment this line to 361 | # disable the Paramiko look for keys function 362 | #look_for_keys = False 363 | 364 | # When using persistent connections with Paramiko, the connection runs in a 365 | # background process. If the host doesn't already have a valid SSH key, by 366 | # default Ansible will prompt to add the host key. This will cause connections 367 | # running in background processes to fail. Uncomment this line to have 368 | # Paramiko automatically add host keys. 369 | #host_key_auto_add = True 370 | 371 | [ssh_connection] 372 | 373 | # ssh arguments to use 374 | # Leaving off ControlPersist will result in poor performance, so use 375 | # paramiko on older platforms rather than removing it, -C controls compression use 376 | #ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s 377 | 378 | # The base directory for the ControlPath sockets. 379 | # This is the "%(directory)s" in the control_path option 380 | # 381 | # Example: 382 | # control_path_dir = /tmp/.ansible/cp 383 | #control_path_dir = ~/.ansible/cp 384 | 385 | # The path to use for the ControlPath sockets. This defaults to a hashed string of the hostname, 386 | # port and username (empty string in the config). The hash mitigates a common problem users 387 | # found with long hostnames and the conventional %(directory)s/ansible-ssh-%%h-%%p-%%r format. 388 | # In those cases, a "too long for Unix domain socket" ssh error would occur. 389 | # 390 | # Example: 391 | # control_path = %(directory)s/%%h-%%r 392 | #control_path = 393 | 394 | # Enabling pipelining reduces the number of SSH operations required to 395 | # execute a module on the remote server. This can result in a significant 396 | # performance improvement when enabled, however when using "sudo:" you must 397 | # first disable 'requiretty' in /etc/sudoers 398 | # 399 | # By default, this option is disabled to preserve compatibility with 400 | # sudoers configurations that have requiretty (the default on many distros). 401 | # 402 | #pipelining = False 403 | 404 | # Control the mechanism for transferring files (old) 405 | # * smart = try sftp and then try scp [default] 406 | # * True = use scp only 407 | # * False = use sftp only 408 | #scp_if_ssh = smart 409 | 410 | # Control the mechanism for transferring files (new) 411 | # If set, this will override the scp_if_ssh option 412 | # * sftp = use sftp to transfer files 413 | # * scp = use scp to transfer files 414 | # * piped = use 'dd' over SSH to transfer files 415 | # * smart = try sftp, scp, and piped, in that order [default] 416 | #transfer_method = smart 417 | 418 | # if False, sftp will not use batch mode to transfer files. This may cause some 419 | # types of file transfer failures impossible to catch however, and should 420 | # only be disabled if your sftp version has problems with batch mode 421 | #sftp_batch_mode = False 422 | 423 | # The -tt argument is passed to ssh when pipelining is not enabled because sudo 424 | # requires a tty by default. 425 | #usetty = True 426 | 427 | # Number of times to retry an SSH connection to a host, in case of UNREACHABLE. 428 | # For each retry attempt, there is an exponential backoff, 429 | # so after the first attempt there is 1s wait, then 2s, 4s etc. up to 30s (max). 430 | retries = 3 431 | 432 | [persistent_connection] 433 | 434 | # Configures the persistent connection timeout value in seconds. This value is 435 | # how long the persistent connection will remain idle before it is destroyed. 436 | # If the connection doesn't receive a request before the timeout value 437 | # expires, the connection is shutdown. The default value is 30 seconds. 438 | #connect_timeout = 30 439 | 440 | # The command timeout value defines the amount of time to wait for a command 441 | # or RPC call before timing out. The value for the command timeout must 442 | # be less than the value of the persistent connection idle timeout (connect_timeout) 443 | # The default value is 30 second. 444 | #command_timeout = 30 445 | 446 | [accelerate] 447 | #accelerate_port = 5099 448 | #accelerate_timeout = 30 449 | #accelerate_connect_timeout = 5.0 450 | 451 | # The daemon timeout is measured in minutes. This time is measured 452 | # from the last activity to the accelerate daemon. 453 | #accelerate_daemon_timeout = 30 454 | 455 | # If set to yes, accelerate_multi_key will allow multiple 456 | # private keys to be uploaded to it, though each user must 457 | # have access to the system via SSH to add a new key. The default 458 | # is "no". 459 | #accelerate_multi_key = yes 460 | 461 | [selinux] 462 | # file systems that require special treatment when dealing with security context 463 | # the default behaviour that copies the existing context or uses the user default 464 | # needs to be changed to use the file system dependent context. 465 | #special_context_filesystems=nfs,vboxsf,fuse,ramfs,9p,vfat 466 | 467 | # Set this to yes to allow libvirt_lxc connections to work without SELinux. 468 | #libvirt_lxc_noseclabel = yes 469 | 470 | [colors] 471 | #highlight = white 472 | #verbose = blue 473 | #warn = bright purple 474 | #error = red 475 | #debug = dark gray 476 | #deprecate = purple 477 | #skip = cyan 478 | #unreachable = red 479 | #ok = green 480 | #changed = yellow 481 | #diff_add = green 482 | #diff_remove = red 483 | #diff_lines = cyan 484 | 485 | 486 | [diff] 487 | # Always print diff when running ( same as always running with -D/--diff ) 488 | always = True 489 | 490 | # Set how many context lines to show in diff 491 | context = 3 492 | -------------------------------------------------------------------------------- /http/pkg-groups.tar: -------------------------------------------------------------------------------- 1 | lists/.base000644 001750 001750 00000010130 14102250161 013432 0ustar00stillstill000000 000000 ## generated by features.in/metadata/lib/50-metadata.mk 2 | 3 | ## SYSTEM_PACKAGES 4 | firmware-linux 5 | memtest86+ 6 | 7 | ## COMMON_PACKAGES 8 | installer-feature-powerbutton-stage3 9 | acpid 10 | acpi 11 | shim-signed 12 | 13 | ## THE_PACKAGES 14 | network-config-subsystem 15 | etcnet 16 | open-vm-tools 17 | virtualbox-guest-additions 18 | xorg-drv-vmware 19 | xorg-drv-vmmouse 20 | spice-vdagent 21 | qemu-guest-agent 22 | nvidia-settings 23 | nvidia-xconfig 24 | xorg-drv-ati 25 | xorg-drv-radeon 26 | firmware-intel-ucode 27 | iucode_tool 28 | shadow-utils 29 | passwd 30 | shadow-groups 31 | efi-shell 32 | xorg-drv-intel 33 | xorg-dri-intel 34 | firmware-acx100 35 | alterator-luks 36 | dhcpcd 37 | docs-alt-kworkstation 38 | control 39 | xdg-user-dirs 40 | glibc-locales 41 | bumblebee 42 | primus 43 | sddm 44 | bash-completion-systemd 45 | systemd-presets-kdesktop 46 | etcnet-defaults-desktop 47 | fonts-ttf-dejavu 48 | fonts-ttf-google-droid-sans 49 | fonts-ttf-google-droid-serif 50 | fonts-ttf-google-droid-sans-mono 51 | installer-feature-nfs-client-stage3 52 | 53 | ## BASE_PACKAGES 54 | alterator-grub 55 | branding-xalt-kworkstation-release 56 | installer-common-stage3 57 | glibc-gconv-modules 58 | udev-rule-generator-net 59 | installer-feature-runlevel5-stage3 60 | os-prober 61 | installer-centaurus-stage3 62 | make-initrd-luks 63 | os-prober 64 | 65 | ## THE_LISTS 66 | 67 | # tagged/base+xorg sound/base tagged/base+efi tagged/desktop+xorg tools/wireless tagged/security+luks openssh tagged/base+nm sound/pulseaudio systemd tagged/desktop+xorg tagged/xorg+misc kworkstation/kde5-base 68 | xorg-server 69 | xorg-drv-evdev 70 | xorg-drv-synaptics 71 | xorg-drv-vesa 72 | xorg-drv-fbdev 73 | xauth 74 | xorg-utils 75 | x-cursor-theme-jimmac 76 | menu-icons-default 77 | amixer 78 | alsa-utils 79 | aplay 80 | gdisk 81 | parted 82 | fatresize 83 | dosfstools 84 | grub2-efi 85 | elilo 86 | efibootmgr 87 | installer-feature-efi-stage3 88 | xorg-drv-ati 89 | xorg-drv-cirrus 90 | #xorg-drv-mga 91 | xorg-drv-modesetting 92 | xorg-drv-nv 93 | xorg-drv-qxl 94 | #xorg-drv-s3 95 | #xorg-drv-s3virge 96 | #xorg-drv-savage 97 | #xorg-drv-sis 98 | wireless-tools 99 | ath_info 100 | rfkill 101 | crda 102 | iw 103 | make-initrd-luks 104 | cryptsetup 105 | openssh-server 106 | openssh-blacklist 107 | openssh-clients 108 | NetworkManager 109 | NetworkManager-vpnc 110 | NetworkManager-openvpn 111 | NetworkManager-pptp 112 | # this one pulls strongswan, a bit too much? 113 | #NetworkManager-l2tp 114 | usb-modeswitch 115 | pulseaudio-daemon 116 | pulseaudio-utils 117 | pavucontrol 118 | alsa-plugins-pulse 119 | systemd 120 | systemd-units 121 | systemd-sysvinit 122 | systemd-analyze 123 | chkconfig 124 | xorg-drv-ati 125 | xorg-drv-cirrus 126 | #xorg-drv-mga 127 | xorg-drv-modesetting 128 | xorg-drv-nv 129 | xorg-drv-qxl 130 | #xorg-drv-s3 131 | #xorg-drv-s3virge 132 | #xorg-drv-savage 133 | #xorg-drv-sis 134 | xorg-drv-joystick 135 | alterator-standalone 136 | alterator-auth 137 | alterator-control 138 | alterator-datetime 139 | alterator-groups 140 | alterator-net-iptables 141 | alterator-net-routing 142 | alterator-net-shares 143 | alterator-services 144 | alterator-sysconfig 145 | alterator-updates 146 | alterator-x11 147 | alterator-xkb 148 | wireless-tools 149 | rfkill 150 | wpa_supplicant 151 | ppp-pppoe 152 | apt-repo 153 | apt-indicator 154 | arj 155 | audit 156 | avahi-daemon 157 | bc 158 | bind-utils 159 | bridge-utils 160 | cpufreq-simple 161 | cifs-utils 162 | curl 163 | ddcprobe 164 | etcnet-full 165 | fdisk 166 | fuse-exfat 167 | gpm 168 | hdparm 169 | ipcalc 170 | jfsutils 171 | lsblk 172 | mc-full 173 | make-initrd-lvm 174 | man-pages-ru 175 | mtr 176 | nano-editor 177 | net-tools 178 | netcat 179 | netlist 180 | pciutils 181 | pcmciautils 182 | pinfo 183 | pm-utils 184 | pulseaudio-bluez 185 | quota 186 | rpminstall 187 | screen 188 | smartmontools 189 | strace 190 | sudo 191 | synaptic-kde 192 | systemd-analyze 193 | tcpdump 194 | udev-rule-generator-cdrom 195 | update-kernel 196 | usb-modeswitch 197 | usbutils 198 | userpasswd 199 | vim-console 200 | wget 201 | xinput 202 | xfsprogs 203 | xorg-conf-synaptics 204 | xorg-conf-libinput-touchpad 205 | libva-driver-intel 206 | #libva-driver-vdpau 207 | #libvdpau-va-gl 208 | firefox-esr 209 | firefox-esr-ru 210 | firefox-esr-uk 211 | icon-theme-oxygen 212 | kde5-network-manager-etcnet 213 | kde5-network-manager-nm 214 | kde5-video-player-smplayer 215 | kde5-audio-player-qmmp 216 | kde5-small 217 | ^kf5-i18n-.* 218 | # GTK2/GTK3 theme 219 | gtk3-theme-breeze 220 | gtk2-theme-breeze 221 | # KDE4 support 222 | kde4base-runtime-core 223 | kde4-styles-breeze 224 | kde4-i18n-ru 225 | kde4-i18n-uk 226 | 227 | ## BASE_LISTS 228 | 229 | # tagged/basesystem tagged/basesystem+alterator tagged/base+l10n tagged/base+network 230 | interactivesystem 231 | apt-conf 232 | apt 233 | apt-scripts-nvidia 234 | alterator-root 235 | alterator-users 236 | alterator-net-eth 237 | glibc-locales 238 | glibc-gconv-modules 239 | etcnet 240 | dhcpcd 241 | 242 | ## DOT_BASE 243 | ^kernel-(image|modules-(virtualbox-addition|vboxguest|vmware|scsi|drm|drm|nvidia|drm-radeon|alsa|sound|e1000e|igb|bcmwl|rt3070|rtl8192|staging|bcmwl|ndiswrapper|bbswitch|staging|drm|drm-radeon|kvm|virtualbox))-(un-def)$ 244 | ^branding-xalt-kworkstation-(bootsplash|alterator|bootloader|bootsplash|graphics|indexhtml|notes|slideshow|indexhtml|notes)$ 245 | docs-alt-kworkstation 246 | make-initrd-plymouth 247 | cpio 248 | firmware-prism.* 249 | firmware-ipw.* 250 | firmware-zd.* 251 | lists/kworkstation/kde5000644 001044 001044 00000001514 13160426753 015506 0ustar00zergzerg000000 000000 catdoc 252 | pinentry-qt5 253 | quick-usb-formatter 254 | rosa-imagewriter 255 | gparted 256 | kde5-ksystemlog 257 | #altlinux-freedesktop-menu-nested-menu 258 | firefox-esr 259 | firefox-adblock_plus 260 | firefox-flashblock 261 | firefox-pepperflash 262 | gecko-mediaplayer 263 | #java-plugin 264 | mozilla-plugin-java-1.8.0-openjdk 265 | qmmp1 266 | qmmp-skins 267 | kde5-big 268 | # system-config-samba 269 | kde5-telepathy 270 | kde5-konversation 271 | choqok 272 | ring-client-kde5 273 | kde5-k3b 274 | fbreader 275 | kde4-basket 276 | #kde5-basket 277 | kmymoney 278 | kmymoney-i18n 279 | #kde5-plasma-yawp 280 | kde5-kfloppy 281 | qstardict 282 | stardict-mueller7 283 | stardict-slovnyk_en-ru 284 | stardict-slovnyk_ru-en 285 | stardict-slovnyk_en-uk 286 | stardict-slovnyk_uk-en 287 | stardict-wn 288 | hunspell-ru-lebedev 289 | hunspell-uk 290 | LibreOffice 291 | LibreOffice-kde4 292 | LibreOffice-langpack-ru 293 | #LibreOffice-langpack-tt 294 | LibreOffice-langpack-uk 295 | #^docs-ooo_infra_.* 296 | #kde4-kamerka 297 | kamoso 298 | kde5-ktorrent 299 | eiskaltdcpp-qt 300 | kde5-kio-gdrive 301 | # 3dparty 302 | 303 | i586-skype-preinstall 304 | lists/kworkstation/edu000644 001044 001044 00000000143 13160426753 015430 0ustar00zergzerg000000 000000 kde5-edu 305 | kumir 306 | #stellarium 307 | gcompris 308 | gcompris-voices-en 309 | gcompris-voices-ru 310 | tuxpaint 311 | tuxpaint-stamps 312 | lists/kworkstation/games000644 001044 001044 00000000177 13160426753 015756 0ustar00zergzerg000000 000000 kde5-games 313 | knights 314 | frozen-bubble 315 | #freeciv 316 | kcheckers 317 | #kiki 318 | lbreakout2 319 | openpref 320 | pingus 321 | supertux2 322 | tuxkart 323 | xmoto 324 | libtxc_dxtn 325 | steam 326 | lists/kworkstation/publishing000644 001044 001044 00000000034 13160426753 017016 0ustar00zergzerg000000 000000 scribus 327 | #docs-scribus_intro 328 | lists/kworkstation/emulators000644 001044 001044 00000000240 13160426753 016664 0ustar00zergzerg000000 000000 i586-libnss-mdns 329 | i586-libnss-myhostname 330 | i586-xorg-dri-* 331 | wine-mono 332 | wine-gecko 333 | 334 | 335 | 336 | i586-wine-vanilla 337 | i586-libwine-vanilla-gl 338 | i586-libwine-vanilla-twain 339 | virtualbox 340 | lists/kworkstation/remote-desktop000644 001044 001044 00000000035 13160426753 017615 0ustar00zergzerg000000 000000 kde5-krfb 341 | kde5-krdc 342 | rdesktop 343 | lists/kworkstation/printing000644 001044 001044 00000000241 13160426753 016504 0ustar00zergzerg000000 000000 kde5-printing 344 | cups 345 | cups-ppd 346 | samba-client-cups 347 | printer-drivers-base 348 | printer-drivers-X11 349 | hplip-hpijs 350 | hplip-PPDs 351 | printer-testpages 352 | bluez-cups 353 | system-config-printer 354 | lists/kworkstation/scanning000644 001044 001044 00000000174 13160426753 016457 0ustar00zergzerg000000 000000 kde5-scanning 355 | tesseract-langpack-en 356 | tesseract-langpack-ru 357 | tesseract-langpack-uk 358 | gimagereader-qt5 359 | hplip-sane 360 | libsane-gphoto2 361 | lists/kworkstation/video-editing000644 001044 001044 00000000064 13160426753 017404 0ustar00zergzerg000000 000000 kdenlive 362 | kde4-k9copy 363 | avidemux-qt 364 | recordmydesktop-qt 365 | lists/kworkstation/sound-editing000644 001044 001044 00000000064 13160426753 017426 0ustar00zergzerg000000 000000 kde5-soundkonverter 366 | kde5-kid3 367 | flacon-qt5 368 | kde5-kwave 369 | lists/kworkstation/graphics-editing000644 001044 001044 00000000340 13160426753 020073 0ustar00zergzerg000000 000000 gimp 370 | gimp-help-ru 371 | gimp-help-en 372 | gimp-plugin-gutenprint 373 | #gimp-plugin-separateplus 374 | gimp-script-ISONoiseReduction 375 | gimp-plugin-ufraw 376 | #darktable 377 | inkscape 378 | hugin 379 | kde5-digikam 380 | kde5-kipi-plugins 381 | # 3D 382 | blender 383 | blender-i18n 384 | blender-docs 385 | lists/kworkstation/clients-base000644 001044 001044 00000000000 13160426753 017214 0ustar00zergzerg000000 000000 lists/kworkstation/clients-ad000644 001044 001044 00000000143 13160426753 016676 0ustar00zergzerg000000 000000 libwbclient 386 | task-auth-ad-sssd 387 | kde5-autofs-shares 388 | krb5-ticket-watcher 389 | usbguard-applet 390 | usbguard-dbus 391 | lists/kworkstation/clients-ipa000644 001044 001044 00000000277 13160426753 017073 0ustar00zergzerg000000 000000 task-auth-freeipa 392 | installer-feature-sudo-enable-by-default-stage3 393 | #installer-feature-sudo-enable-by-default-kde5su-stage3 394 | kde5-autofs-shares 395 | krb5-ticket-watcher 396 | usbguard-applet 397 | usbguard-dbus 398 | lists/kworkstation/clients-backup000644 001044 001044 00000000046 13160426753 017561 0ustar00zergzerg000000 000000 bacula-client 399 | alterator-bacula-client 400 | lists/kworkstation/clients-cloud000644 001044 001044 00000000037 13160426753 017422 0ustar00zergzerg000000 000000 owncloud-client 401 | seafile-client 402 | lists/kworkstation/clients-monitor000644 001044 001044 00000000044 13160426753 020001 0ustar00zergzerg000000 000000 zabbix-agent 403 | alterator-zabbix-agent 404 | groups/kworkstation/kde5.directory000644 001044 001044 00000001022 13062455233 017660 0ustar00zergzerg000000 000000 [Desktop Entry] 405 | Type=Directory 406 | Name=K Desktop Environment (recommended) 407 | Comment=Main KDE components, without which it may be difficult to work with the system. 408 | X-Alterator-PackageList=kworkstation/kde5 409 | X-Alterator-Required=yes 410 | Categories=KDE; 411 | 412 | Name[ru_RU]=Графическое окружение KDE (рекомендуется) 413 | Comment[ru_RU]=Основные компоненты графического окружения KDE, без которых может быть затруднена работа с системой. 414 | groups/kworkstation/edu.directory000644 001044 001044 00000000413 13062455233 017610 0ustar00zergzerg000000 000000 [Desktop Entry] 415 | Type=Directory 416 | Name=Edutainment 417 | Comment=Edutainment applications. 418 | X-Alterator-PackageList=kworkstation/edu 419 | X-Alterator-Required=no 420 | Categories=KDE; 421 | 422 | Name[ru_RU]=Образование 423 | Comment[ru_RU]=Образовательные приложения. 424 | groups/kworkstation/games.directory000644 001044 001044 00000000332 13062455233 020127 0ustar00zergzerg000000 000000 [Desktop Entry] 425 | Type=Directory 426 | Name=Games 427 | Comment=Games сollection. 428 | X-Alterator-PackageList=kworkstation/games 429 | X-Alterator-Required=no 430 | Categories=KDE;GNOME; 431 | 432 | Name[ru_RU]=Игры 433 | Comment[ru_RU]=Сборник игр. 434 | groups/kworkstation/publishing.directory000644 001044 001044 00000000520 13062455233 021176 0ustar00zergzerg000000 000000 [Desktop Entry] 435 | Type=Directory 436 | Name=Publishing 437 | Comment=Desktop publishing applications. 438 | X-Alterator-PackageList=kworkstation/publishing 439 | X-Alterator-Required=no 440 | Categories=KDE;GNOME; 441 | 442 | Name[ru_RU]=Издательская система 443 | Comment[ru_RU]=Приложения для визуальной вёрстки документов. 444 | groups/kworkstation/emulators.directory000644 001044 001044 00000001236 13062455233 021052 0ustar00zergzerg000000 000000 [Desktop Entry] 445 | Type=Directory 446 | Name=Emulators 447 | Comment=Support the use of applications designed for other operating systems and computer architectures. For example, 32-bit programs in a 64-bit environment. 448 | X-Alterator-PackageList=kworkstation/emulators 449 | X-Alterator-Required=yes 450 | X-Alterator-Conflicts=wine-local 451 | Categories=KDE;GNOME; 452 | 453 | Name[ru_RU]=Эмуляторы 454 | Comment[ru_RU]=Поддержка использования приложений, предназначенных для других операционных систем и компьютерных архитектур. Например, 32-битные программы в 64-битной среде. 455 | groups/kworkstation/remote-desktop.directory000644 001044 001044 00000000552 13062455233 022001 0ustar00zergzerg000000 000000 [Desktop Entry] 456 | Type=Directory 457 | Name=Remote Desktop 458 | Comment=Remote desktop support applications. 459 | X-Alterator-PackageList=kworkstation/remote-desktop 460 | X-Alterator-Required=no 461 | Categories=KDE; 462 | 463 | Name[ru_RU]=Сетевой рабочий стол 464 | Comment[ru_RU]=Приложения для поддержки работы с сетевым рабочим столом. 465 | groups/kworkstation/printing.directory000644 001044 001044 00000000577 13062455233 020700 0ustar00zergzerg000000 000000 [Desktop Entry] 466 | Type=Directory 467 | Name=Printing 468 | Comment=Applications and drivers for printing devices support. 469 | X-Alterator-PackageList=kworkstation/printing 470 | X-Alterator-Required=yes 471 | Categories=KDE; 472 | 473 | Name[ru_RU]=Поддержка принтеров 474 | Comment[ru_RU]=Приложения и драйвера для поддержки работы с устройствами печати. 475 | groups/kworkstation/scanning.directory000644 001044 001044 00000000661 13145042230 020627 0ustar00zergzerg000000 000000 [Desktop Entry] 476 | Type=Directory 477 | Name=Scanning 478 | Comment=Applications and drivers for images scanning devices support. 479 | X-Alterator-PackageList=kworkstation/scanning 480 | X-Alterator-Required=yes 481 | Categories=KDE;GNOME;XFCE; 482 | 483 | Name[ru_RU]=Поддержка сканеров 484 | Comment[ru_RU]=Приложения и драйвера для поддержки работы с устройствами сканирования изображений 485 | groups/kworkstation/video-editing.directory000644 001044 001044 00000000473 13062455233 021570 0ustar00zergzerg000000 000000 [Desktop Entry] 486 | Type=Directory 487 | Name=Video editing 488 | Comment=Video editing applications. 489 | X-Alterator-PackageList=kworkstation/video-editing 490 | X-Alterator-Required=yes 491 | Categories=KDE; 492 | 493 | Name[ru_RU]=Обработка видео 494 | Comment[ru_RU]=Приложения для обработки видеоматериалов. 495 | groups/kworkstation/sound-editing.directory000644 001044 001044 00000000515 13062455233 021607 0ustar00zergzerg000000 000000 [Desktop Entry] 496 | Type=Directory 497 | Name=Sound editing 498 | Comment=Sound editing applications. 499 | X-Alterator-PackageList=kworkstation/sound-editing 500 | X-Alterator-Required=yes 501 | Categories=KDE;GNOME;XFCE; 502 | 503 | Name[ru_RU]=Обработка звука 504 | Comment[ru_RU]=Приложения для обработки звуковых материалов. 505 | groups/kworkstation/graphics-editing.directory000644 001044 001044 00000000534 13062455233 022260 0ustar00zergzerg000000 000000 [Desktop Entry] 506 | Type=Directory 507 | Name=Graphics editing 508 | Comment=Graphics editing applications. 509 | X-Alterator-PackageList=kworkstation/graphics-editing 510 | X-Alterator-Required=yes 511 | Categories=KDE;GNOME 512 | 513 | Name[ru_RU]=Обработка графики 514 | Comment[ru_RU]=Приложения для обработки графических изображений. 515 | groups/kworkstation/z01-add-clients.directory000644 001044 001044 00000000500 13062455233 021627 0ustar00zergzerg000000 000000 [Desktop Entry] 516 | Type=Directory 517 | X-Alterator-Required=no 518 | X-Alterator-PackageList=kworkstation/clients-base 519 | Categories=KDE; 520 | 521 | Name=Service clients 522 | Name[ru_RU]=Клиенты сервисов 523 | Comment=Additional services clients. 524 | Comment[ru_RU]=Дополнительные клиенты различных сервисов. 525 | groups/kworkstation/clients-ad.directory000644 001044 001044 00000000543 13062455233 021062 0ustar00zergzerg000000 000000 [Desktop Entry] 526 | Type=Directory 527 | X-Alterator-PackageList=kworkstation/clients-ad 528 | X-Alterator-Required=no 529 | X-Alterator-Parent=kworkstation/z01-add-clients 530 | Categories=KDE;GNOME;XFCE 531 | 532 | Name=Active Directory 533 | Name[ru_RU]=Активный каталог 534 | Comment=Active Directory client. 535 | Comment[ru_RU]=Клиент службы каталогов Active Directory. 536 | groups/kworkstation/clients-ipa.directory000644 001044 001044 00000000521 13107574055 021247 0ustar00zergzerg000000 000000 [Desktop Entry] 537 | Type=Directory 538 | X-Alterator-PackageList=kworkstation/clients-ipa 539 | X-Alterator-Required=no 540 | X-Alterator-Parent=kworkstation/z01-add-clients 541 | Categories=KDE;GNOME;XFCE 542 | 543 | Name=ALT domain (IPA) 544 | Name[ru_RU]=Домен Альт (IPA) 545 | Comment=FreeIPA client for ALT domain. 546 | Comment[ru_RU]=FreeIPA-клиент домена Альт. 547 | groups/kworkstation/clients-backup.directory000644 001044 001044 00000000566 13062455233 021750 0ustar00zergzerg000000 000000 [Desktop Entry] 548 | Type=Directory 549 | X-Alterator-PackageList=kworkstation/clients-backup 550 | X-Alterator-Required=no 551 | X-Alterator-Parent=kworkstation/z01-add-clients 552 | Categories=KDE;GNOME;XFCE 553 | 554 | Name=Backup 555 | Name[ru_RU]=Резервное копирование 556 | Comment=Data backup services clients. 557 | Comment[ru_RU]=Клиенты резервного копирования данных. 558 | groups/kworkstation/clients-cloud.directory000644 001044 001044 00000000536 13062455233 021606 0ustar00zergzerg000000 000000 [Desktop Entry] 559 | Type=Directory 560 | X-Alterator-PackageList=kworkstation/clients-cloud 561 | X-Alterator-Required=no 562 | X-Alterator-Parent=kworkstation/z01-add-clients 563 | Categories=KDE;GNOME;XFCE 564 | 565 | Name=Clouds 566 | Name[ru_RU]=Облака 567 | Comment=Cloud data services clients. 568 | Comment[ru_RU]=Клиенты облачных сервисов хранения данных. 569 | groups/kworkstation/clients-monitor.directory000644 001044 001044 00000000520 13062455233 022160 0ustar00zergzerg000000 000000 [Desktop Entry] 570 | Type=Directory 571 | X-Alterator-PackageList=kworkstation/clients-monitor 572 | X-Alterator-Required=no 573 | X-Alterator-Parent=kworkstation/z01-add-clients 574 | Categories=KDE;GNOME;XFCE 575 | 576 | Name=Мonitoring 577 | Name[ru_RU]=Наблюдение 578 | Comment=Monitoring systems clients. 579 | Comment[ru_RU]=Клиенты систем мониторинга. 580 | --------------------------------------------------------------------------------