├── .gitignore ├── README.md ├── Vagrantfile ├── git_quick_start.md └── vagrant_quick_start.md /.gitignore: -------------------------------------------------------------------------------- 1 | .vagrant 2 | *.vdi 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Инструкции 2 | 3 | * [Как начать Git](git_quick_start.md) 4 | * [Как начать Vagrant](vagrant_quick_start.md) 5 | 6 | ## otus-linux 7 | 8 | Используйте этот [Vagrantfile](Vagrantfile) - для тестового стенда. 9 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vim: set ft=ruby : 3 | 4 | MACHINES = { 5 | :otuslinux => { 6 | :box_name => "centos/7", 7 | :ip_addr => '192.168.11.101', 8 | :disks => { 9 | :sata1 => { 10 | :dfile => './sata1.vdi', 11 | :size => 250, 12 | :port => 1 13 | }, 14 | :sata2 => { 15 | :dfile => './sata2.vdi', 16 | :size => 250, # Megabytes 17 | :port => 2 18 | }, 19 | :sata3 => { 20 | :dfile => './sata3.vdi', 21 | :size => 250, 22 | :port => 3 23 | }, 24 | :sata4 => { 25 | :dfile => './sata4.vdi', 26 | :size => 250, # Megabytes 27 | :port => 4 28 | } 29 | 30 | } 31 | 32 | 33 | }, 34 | } 35 | 36 | Vagrant.configure("2") do |config| 37 | 38 | MACHINES.each do |boxname, boxconfig| 39 | 40 | config.vm.define boxname do |box| 41 | 42 | box.vm.box = boxconfig[:box_name] 43 | box.vm.host_name = boxname.to_s 44 | 45 | #box.vm.network "forwarded_port", guest: 3260, host: 3260+offset 46 | 47 | box.vm.network "private_network", ip: boxconfig[:ip_addr] 48 | 49 | box.vm.provider :virtualbox do |vb| 50 | vb.customize ["modifyvm", :id, "--memory", "1024"] 51 | needsController = false 52 | boxconfig[:disks].each do |dname, dconf| 53 | unless File.exist?(dconf[:dfile]) 54 | vb.customize ['createhd', '--filename', dconf[:dfile], '--variant', 'Fixed', '--size', dconf[:size]] 55 | needsController = true 56 | end 57 | 58 | end 59 | if needsController == true 60 | vb.customize ["storagectl", :id, "--name", "SATA", "--add", "sata" ] 61 | boxconfig[:disks].each do |dname, dconf| 62 | vb.customize ['storageattach', :id, '--storagectl', 'SATA', '--port', dconf[:port], '--device', 0, '--type', 'hdd', '--medium', dconf[:dfile]] 63 | end 64 | end 65 | end 66 | box.vm.provision "shell", inline: <<-SHELL 67 | mkdir -p ~root/.ssh 68 | cp ~vagrant/.ssh/auth* ~root/.ssh 69 | yum install -y mdadm smartmontools hdparm gdisk 70 | SHELL 71 | 72 | end 73 | end 74 | end 75 | 76 | -------------------------------------------------------------------------------- /git_quick_start.md: -------------------------------------------------------------------------------- 1 | # Git Quick Start 2 | 3 | 1. Регистрируетесь на github.com 4 | 2. Нажимате `Fork` этого репозитория (кнопка сверху справа) - в вашем репозитории появится копия проекта 5 | 3. На рабочей машине делаете `git clone <ссылка на ваш репозиторий>` - кнопка "clone or download" 6 | 4. Вносите правки, работаете над проектом, делаете `git commit -m -a` 7 | 5. По окончании работы делаете `git push` 8 | 6. В "Чате с преподавателем" отсылаете ссылку на ваш репозиторий 9 | 10 | Полезные ссылки по git: 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /vagrant_quick_start.md: -------------------------------------------------------------------------------- 1 | # Vagrant quick start 2 | 3 | 1. Устанавливаете Vagrant: 4 | 2. Устанавливаете VirtualBox: 5 | 3. Клонируете репозиторий со стендом и запускаете виртуальную машину: 6 | ```bash 7 | git clone git@github.com:erlong15/otus-linux.git 8 | cd otus-linux 9 | vagrant up 10 | vagrant ssh otuslinux 11 | ``` 12 | 13 | Полезные ссылки: 14 | 15 | 16 | 17 | ## Tips and FAQs 18 | 19 | 1. Почему у меня внезапно выросло занимаемое место в виртуальной машине развернутой с помощью Vagrant? 20 | 21 | Скорее всего вы добавили дополнительное блочное устройство и оно лежит в одной директории 22 | с Vagrantfile. Vagrant в свою очередь при `Vagrant up` делает rsync всего, что есть рядом с 23 | Vagrantfile в директорию виртуальной машины `/vagrant/` 24 | 25 | 2. Как добавить дополнительные диски с помощью Vagrantfile 26 | 27 | ```ruby 28 | home = ENV['HOME'] # Используем глобальную переменную $HOME 29 | 30 | MACHINES = { 31 | :otuslinux => { 32 | :box_name => "centos/7", 33 | :ip_addr => '192.168.11.101', 34 | :disks => { 35 | :sata1 => { 36 | :dfile => home + '/VirtualBox VMs/sata1.vdi', # Указываем где будут лежать файлы наших дисков 37 | :size => 8192, 38 | :port => 1 39 | }, 40 | :sata2 => { 41 | :dfile => home + '/VirtualBox VMs/sata2.vdi', 42 | :size => 1024, # Megabytes 43 | :port => 2 44 | }, 45 | :sata3 => { 46 | :dfile => home + '/VirtualBox VMs/sata3.vdi', 47 | :size => 1024, 48 | :port => 3 49 | } 50 | } 51 | }, 52 | } 53 | ``` 54 | --------------------------------------------------------------------------------