mirror of
				https://github.com/Maks1mS/alt-linux-vagrant-boxes.git
				synced 2025-11-04 06:51:21 +03:00 
			
		
		
		
	init
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
iso/*.iso
 | 
			
		||||
							
								
								
									
										1
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
packer build -var-file=alt-server-v-10/vars.pkrvars.hcl libvirt.pkr.hcl
 | 
			
		||||
							
								
								
									
										18
									
								
								alt-server-v-10/http/autoinstall.scm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								alt-server-v-10/http/autoinstall.scm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
("/sysconfig-base/language" action "write" lang ("en_US"))
 | 
			
		||||
("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle")
 | 
			
		||||
("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)
 | 
			
		||||
("/evms/control" action "write" control open installer #t)
 | 
			
		||||
("/evms/control" action "write" control update)
 | 
			
		||||
("/evms/profiles/server" action apply commit #f clearall #t exclude ())
 | 
			
		||||
("/evms/control" action "write" control commit)
 | 
			
		||||
("/evms/control" action "write" control close)
 | 
			
		||||
("/pkg-init" action "write")
 | 
			
		||||
("/pkg-install" action "write" lists "" auto #t)
 | 
			
		||||
("/preinstall" action "write")
 | 
			
		||||
("/grub" action "write" device "/dev/vda" passwd #f passwd_1 "*" passwd_2 "*")
 | 
			
		||||
("/net-eth" action "write" reset #t)
 | 
			
		||||
("/net-eth" action "write" name "eth0" configuration "dhcp")
 | 
			
		||||
("/net-eth" action "write" commit #t)
 | 
			
		||||
("/root/change_password" language ("en_US") passwd_2 "vagrant" passwd_1 "vagrant")
 | 
			
		||||
("/users/create_account" new_name "vagrant" gecos "vagrant" allow_su #t auto #f passwd_1 "vagrant" passwd_2 "vagrant" autologin #f)
 | 
			
		||||
("/postinstall/laststate" script "http://server/script.sh")
 | 
			
		||||
							
								
								
									
										5
									
								
								alt-server-v-10/http/vm-profile.scm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								alt-server-v-10/http/vm-profile.scm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
((server
 | 
			
		||||
  (title . "Setup")
 | 
			
		||||
  (action . trivial)
 | 
			
		||||
  (actiondata  ("/" (size 1024000 . #t ) (fsim . "Ext2/3") (methods plain)))
 | 
			
		||||
))
 | 
			
		||||
							
								
								
									
										11
									
								
								alt-server-v-10/setup.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								alt-server-v-10/setup.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
#!/bin/bash -e
 | 
			
		||||
 | 
			
		||||
# add vagrant's public key - user can ssh without password
 | 
			
		||||
mkdir -pm 700 /home/vagrant/.ssh
 | 
			
		||||
curl -q -o /home/vagrant/.ssh/authorized_keys https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
 | 
			
		||||
chmod 0600 /home/vagrant/.ssh/authorized_keys
 | 
			
		||||
chown -R vagrant:vagrant /home/vagrant/.ssh
 | 
			
		||||
 | 
			
		||||
# give sudo access (grants all permissions to user vagrant)
 | 
			
		||||
echo "vagrant ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/vagrant
 | 
			
		||||
chmod 0440 /etc/sudoers.d/vagrant
 | 
			
		||||
							
								
								
									
										17
									
								
								alt-server-v-10/setup.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								alt-server-v-10/setup.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Provision
 | 
			
		||||
  hosts: default
 | 
			
		||||
  become: true
 | 
			
		||||
  become_method: su
 | 
			
		||||
  gather_facts: false
 | 
			
		||||
  vars:
 | 
			
		||||
    become_password: vagrant
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Shell
 | 
			
		||||
      ansible.builtin.shell: |
 | 
			
		||||
        mkdir -pm 700 /home/vagrant/.ssh
 | 
			
		||||
        curl -q -o /home/vagrant/.ssh/authorized_keys https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
 | 
			
		||||
        chmod 0600 /home/vagrant/.ssh/authorized_keys
 | 
			
		||||
        chown -R vagrant:vagrant /home/vagrant/.ssh
 | 
			
		||||
        echo "vagrant ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/vagrant
 | 
			
		||||
        chmod 0440 /etc/sudoers.d/vagrant
 | 
			
		||||
							
								
								
									
										22
									
								
								alt-server-v-10/vars.pkrvars.hcl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								alt-server-v-10/vars.pkrvars.hcl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
iso_url = "./iso/alt-server-v-10.1-x86_64.iso"
 | 
			
		||||
iso_checksum = "sha256:9955e7bb5ee9affbe3de7473a3bcd53f7d8463b9e2f43ef6831ebfe71bc7da6c"
 | 
			
		||||
 | 
			
		||||
ssh_username = "vagrant"
 | 
			
		||||
ssh_password = "vagrant"
 | 
			
		||||
 | 
			
		||||
vm_name = "alt-server-v-10"
 | 
			
		||||
 | 
			
		||||
http_dir = "./alt-server-v-10/http"
 | 
			
		||||
 | 
			
		||||
output_directory = "./builds/alt-server-v-10"
 | 
			
		||||
output_filename = "alt-server-v-10-amd64"
 | 
			
		||||
 | 
			
		||||
boot_command = [
 | 
			
		||||
  "<wait><wait><wait><wait><wait><wait><wait><wait>",
 | 
			
		||||
  "e<wait><down><down><down><end><spacebar>",
 | 
			
		||||
  "ai curl=http://{{ .HTTPIP }}:{{ .HTTPPort }}/",
 | 
			
		||||
  "<f10>"
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
setup_playbook = "./alt-server-v-10/setup.yml"
 | 
			
		||||
setup_script = "./alt-server-v-10/setup.sh"
 | 
			
		||||
							
								
								
									
										0
									
								
								iso/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								iso/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										88
									
								
								libvirt.pkr.hcl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								libvirt.pkr.hcl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
packer {
 | 
			
		||||
  required_plugins {
 | 
			
		||||
    qemu = {
 | 
			
		||||
      source  = "github.com/hashicorp/qemu"
 | 
			
		||||
      version = "~> 1"
 | 
			
		||||
    }
 | 
			
		||||
    vagrant = {
 | 
			
		||||
      source  = "github.com/hashicorp/vagrant"
 | 
			
		||||
      version = "~> 1"
 | 
			
		||||
    }
 | 
			
		||||
    ansible = {
 | 
			
		||||
      source  = "github.com/hashicorp/ansible"
 | 
			
		||||
      version = "~> 1"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
variable "headless" {
 | 
			
		||||
  type = bool
 | 
			
		||||
  default = true
 | 
			
		||||
}
 | 
			
		||||
variable "iso_url" {
 | 
			
		||||
  type = string
 | 
			
		||||
}
 | 
			
		||||
variable "iso_checksum" {
 | 
			
		||||
  type = string
 | 
			
		||||
}
 | 
			
		||||
variable "http_dir" {
 | 
			
		||||
  type = string
 | 
			
		||||
}
 | 
			
		||||
variable "vm_name" {
 | 
			
		||||
  type = string
 | 
			
		||||
}
 | 
			
		||||
variable "boot_command" {
 | 
			
		||||
  type = list(string)
 | 
			
		||||
}
 | 
			
		||||
variable "setup_script" {
 | 
			
		||||
  type = string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
source "qemu" "alt-linux" {
 | 
			
		||||
  headless = "${var.headless}"
 | 
			
		||||
 | 
			
		||||
  # Путь и контрольная сумма исходного ISO-образа
 | 
			
		||||
  iso_url = "${var.iso_url}"
 | 
			
		||||
  iso_checksum = "${var.iso_checksum}"
 | 
			
		||||
 | 
			
		||||
  http_directory = "${var.http_dir}"
 | 
			
		||||
 | 
			
		||||
  vm_name = "${var.vm_name}"
 | 
			
		||||
 | 
			
		||||
  boot_wait = "15s"
 | 
			
		||||
  boot_command = "${var.boot_command}"
 | 
			
		||||
 | 
			
		||||
  accelerator = "kvm"
 | 
			
		||||
  disk_size   = 4096
 | 
			
		||||
  format      = "qcow2"
 | 
			
		||||
  net_device  = "virtio-net"
 | 
			
		||||
  output_directory = "output-vagrant"
 | 
			
		||||
  qemuargs = [
 | 
			
		||||
    [ "-m", "1024" ],
 | 
			
		||||
    [ "-smp", "1" ]
 | 
			
		||||
  ]
 | 
			
		||||
  ssh_username = "vagrant"
 | 
			
		||||
  ssh_password = "vagrant"
 | 
			
		||||
  ssh_port     = 22
 | 
			
		||||
  ssh_wait_timeout = "10000s"
 | 
			
		||||
  ssh_pty = true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
build {
 | 
			
		||||
  sources = [
 | 
			
		||||
    "source.qemu.alt-linux"
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
  # provisioner "ansible" {
 | 
			
		||||
  #   playbook_file = "${var.setup_playbook}"
 | 
			
		||||
  # }
 | 
			
		||||
  #provisioner "shell" {
 | 
			
		||||
    #script = "${var.setup_script}"
 | 
			
		||||
    #execute_command = "python -c 'import pty; pty.spawn(\"/bin/bash\")'; echo 'vagrant' | su -c sh -c '{{ .Vars }} {{ .Path }}'"
 | 
			
		||||
  #}
 | 
			
		||||
 | 
			
		||||
  post-processor "vagrant" {
 | 
			
		||||
    keep_input_artifact = false
 | 
			
		||||
    output              = "package.box"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user