Что лучший рабочий процесс должен создать и протестировать Ваш aws opsworks поваренные книги шеф-повара локально?

В течение многих месяцев я изо всех сил пытался найти лучший рабочий процесс для создания и тестирования моего aws opsworks поваренные книги локально до продвижения к opsworks.

После большого количества остановленных попыток я нашел сообщение в блоге Mike Greiling и с тех пор обосновался на среде, которая работает хорошо на меня. Я хотел бы совместно использовать установку/конфигурацию, потому что существует большое передвижение фигур.

Я поощряю любого, у кого есть их собственная сборка / тестовые среды для шеф-повара, которые конкретно приспособлены к opsworks поваренным книгам, чтобы также отправить ответы здесь - Спасибо!!.

1
задан 9 October 2015 в 16:10
1 ответ

Я НАСТОЯТЕЛЬНО рекомендую всем проверить сообщение в блоге Майка Грейлинга Упростите разработку OpsWorks с помощью Packer и его репозиторий на github opsworks-vm , который поможет вам высмеивать весь стек opsworks, включая установку агента opsworks , так что вы также можете тестировать рецепты развертывания приложений, несколько уровней, несколько экземпляров одновременно и т. д. Это чрезвычайно впечатляет.

Я включил все настройки необходимо подготовить вашу среду перед использованием сборки Mike Greiling Packer Virtualbox.

Быстрый старт в Ubuntu 14.04

ПРИМЕЧАНИЕ: Это НЕЛЬЗЯ сделать с виртуальной машины ubuntu, поскольку virtualbox не поддерживает вложенную виртуализацию 64-битных машин.

1277] Установите ChefDK
  1. mkdir / tmp / packages && cd / tmp / packages
  2. wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.8.1 -1_amd64.deb
  3. sudo dpkg -i chefdk_0.8.0-1_amd64.deb
  4. cd / opt / chefdk /
  5. chef verify
  6. which ruby ​​[1 284] echo 'eval "$ (chef shell-init bash)"' >> ~ / .bash_profile && source ~ / .bash_profile
  • Установить VirtualBox
    1. echo 'deb http: //download.virtualbox. org / virtualbox / debian vivid contrib '> /etc/apt/sources.list.d/virtualbox.list
    2. wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
    3. sudo apt-get update -qqy
    4. sudo apt-get install virtualbox-5.0 dkms
  • Установить Vagrant
    1. cd / tmp / packages
    2. wget https: //dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.deb[1293 providedsudo dpkg -i vagrant_1.7.4_x86_64.deb
    3. vagrant plugin install vagrant-berkshelf
    4. vagrant plugin install vagrant-omnibus
    5. список плагинов vagrant
  • Установите Packer
    1. mkdir / opt / packer && cd / opt / packer
    2. wget https://dl.bintray.com/mitchellh/packer/packer_0.8.6_linux_amd64. zip
    3. unzip packer_0.8.6_linux_amd64.zip
    4. echo 'PATH = $ PATH: / opt / packer' >> ~ / .bash_profile && source ~ / .bash_profile
  • Сборка Майка Грейлинга opsworks-vm образ виртуального бокса с использованием Packer
    1. mkdir ~ / packer && cd ~ / packer
    2. git clone https://github.com/pixelcog/opsworks-vm.git[12105 visiblecd opsworks-vm
    3. rake build install
    4. Это приведет к установите новую виртуальную машину virtualbox в ~ / .vagrant.d /boxs / ubuntu1404-opsworks /
  • Чтобы смоделировать отдельный экземпляр opsworks, создайте новый Vagrantfile, например:

    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu1404-opsworks"
      config.vm.provision :opsworks, type: 'shell', args: 'path/to/dna.json'
    end
    

    Файл dna.json путь задается относительно Vagrantfile и должен содержать любые данные JSON, которые вы хотите отправить в OpsWorks Chef.

    Например:

    {
      "deploy": {
        "my-app": {
          "application_type": "php",
          "scm": {
            "scm_type": "git",
            "repository": "path/to/my-app"
          }
        }
      },
      "opsworks_custom_cookbooks": {
        "enabled": true,
        "scm": {
          "repository": "path/to/my-cookbooks"
        },
        "recipes": [
          "recipe[opsworks_initial_setup]",
          "recipe[dependencies]",
          "recipe[mod_php5_apache2]",
          "recipe[deploy::default]",
          "recipe[deploy::php]",
          "recipe[my_custom_cookbook::configure]"
        ]
      }
    }
    

    Чтобы смоделировать несколько экземпляров opsworks и включить слои, см. Его пример AWS OpsWorks «Начало работы» , который включает stack.json ниже.

    Vagrantfile (для нескольких экземпляров)

    Vagrant.configure("2") do |config|
    
      config.vm.box = "ubuntu1404-opsworks"
    
      # Create the php-app layer
      config.vm.define "app" do |layer|
    
        layer.vm.provision "opsworks", type:"shell", args:[
          'ops/dna/stack.json',
          'ops/dna/php-app.json'
        ]
    
        # Forward port 80 so we can see our work
        layer.vm.network "forwarded_port", guest: 80, host: 8080
        layer.vm.network "private_network", ip: "10.10.10.10"
      end
    
      # Create the db-master layer
      config.vm.define "db" do |layer|
    
        layer.vm.provision "opsworks", type:"shell", args:[
          'ops/dna/stack.json',
          'ops/dna/db-master.json'
        ]
    
        layer.vm.network "private_network", ip: "10.10.10.20"
      end
    end
    

    stack.json

    {
      "opsworks": {
        "layers": {
          "php-app": {
            "instances": {
              "php-app1": {"private-ip": "10.10.10.10"}
            }
          },
          "db-master": {
            "instances": {
              "db-master1": {"private-ip": "10.10.10.20"}
            }
          }
        }
      },
      "deploy": {
        "simple-php": {
          "application_type": "php",
          "document_root": "web",
          "scm": {
            "scm_type": "git",
            "repository": "dev/simple-php"
          },
          "memcached": {},
          "database": {
            "host": "10.10.10.20",
            "database": "simple-php",
            "username": "root",
            "password": "correcthorsebatterystaple",
            "reconnect": true
          }
        }
      },
      "mysql": {
        "server_root_password": "correcthorsebatterystaple",
        "tunable": {"innodb_buffer_pool_size": "256M"}
      },
      "opsworks_custom_cookbooks": {
        "enabled": true,
        "scm": {
          "repository": "ops/cookbooks"
        }
      }
    }
    

    Для тех, кто не знаком с vagrant, вы просто выполните vagrant up , чтобы запустить экземпляр (ы). Затем вы можете изменить свою кулинарную книгу локально, и любые изменения можно будет применить, повторно запустив chef для существующих экземпляров с vagrant Provision. Вы можете выполнить vagrant destroy и vagrant up , чтобы начать с нуля.

    4
    ответ дан 3 December 2019 в 17:38

    Теги

    Похожие вопросы