Olá. Aqui é a Komiya da plataforma.
Chef está popular hoje em dia.
Por isso vou escrever um artigo que me permita surfar essa onda e testar de acordo com o ambiente do produto.
Gostaria de chegar rápido ao Serverspec, mas desta vez vou apenas apresentar o artigo e a receita será da próxima vez.
Está no nível de testar, então tenho a sensação de que será uma receita que vale a pena refatorar.
Aliás, o ambiente que será tentado converter para Chef desta vez é migrar para VPC. (A configuração é web2, db2, stg1, nat1.) Use ELB. Acho que solo é suficiente. )
Como parece possível usar VPC com Vagrant-AWS, vou usar Knife-solo enquanto uso Vagrant para gerenciamento de configuração.
É possível salvar o estado do sistema operacional e revertê-lo vinculando o vagrant e o sahara.
Parece que o Knife-Solo pode tentar apagar o rubi em /sbin e substituí-lo, então certifique-se de não usar rubi na sua aplicação.
Como vou colocar vagrant, vou colocar uma versão maior que a Ruby 1.8.7 com rbenv.
(Para a série CentOS 5. Para a série 6 e outras distribuições, por favor, verifique separadamente com ruby -v)
Na verdade, se você colocar o Chef-Cliente sob /opt/chef pelo PATH mostrado abaixo, talvez não precise se preocupar com a versão rubi.
[shell]# curl -L https://www.opscode.com/chef/install.sh | bash # export PATH=$PATH:/opt/chef/embedded/bin/ # vi ~/.bashrc PATH [/shell] gem parece ser uma forma antiga de colocar chef na gem.
- Introdução do Oracle VirtualBox primeiro
O motivo de incluí-lo é iniciar e gerenciar instâncias no Vagrant-aws.
[shell]cat /etc/redhat-release CentOS release 5.8 (Final) yum install libXmu libXt mesa-libGL qt qt-x11 SDL
wget http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2-4.2.12\_84980\_el5-1.x86\_64.rpm rpm -ivh VirtualBox-4.2-4.2.12_84980_el5-1.x86_64.rpm[/shell]
- Introduzir uma versão mais nova que o ruby-1.8.7 (se necessário)
[shell]yum -y install zlib-devel readline-devel openssl-devel yum instalar ruby ruby-devel rdoc irb rubygems yum install git --enablerepo=rpmforge[/shell]
Instalação do RBENV
[shell]git clone git://github.com/sstephenson/rbenv.git ~/.rbenv[/shell]
As duas linhas seguintes são adicionadas para definir o caminho de rbenv
[shell]vi ~/.bashrc export PATH="$HOME/.rbenv/bin:$PATH" avalia "$(rbenv init -)" fonte ~/.bashrc[/shell] Por favor, compare o PATH aqui para cada ambiente (se não quiser entrar com rbenv, passe por /opt/chef/embedded/bin, etc.)
Instalando o ruby-build
[shell]git clone git://github.com/sstephenson/ruby-build.git cd ruby-build sudo ./install.sh Instalado ruby-build em /usr/local
rbenv install -l rbenv install 1.9.2-p290[/shell]
Especifique a versão padrão
[shell]rbenv global 1.9.2-p290 rbenv rehash[/shell]
Verificação de Versão
[shell]rubi -v[/shell]
Localização da Gema
~/.rbenv/versions/número de versão/lib/ruby/gemas/número de versão/gemas
- Instalar vagrant (1.1 ou superior) e plugins
Não consigo pegar no gem, então baixo o pacote
[shell]wget http://files.vagrantup.com/packages/7e400d00a3c5a0fdf2809c8b5001a035415a607b/vagrant\_1.2.2\_x86\_64.rpm rpm -ivh vagrant_1.2.2_x86_64.rpm rpm -ql vagrant|grep bin
vagrant -v yum install -y rubygem-nokogiri yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel vagrant plugin install vagrant-aws vagrant plugin install sahara vagrant plugin install vagrant-vbguest[/shell]
Não preciso de uma imagem do sistema operacional, mas preciso de uma caixa, então adicione uma caixa fictícia
[shell]vagrant box adicione dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box vagrant box list[/shell] e crie um arquivo de configuração no vagrant init, mas escreva separadamente
・Introdução do solo de faca
[shell]gem install bundler gem install knife-solo --pré gem install knife-solo_data\_bag gem list chef-solo --versão Chef: 11.4.4[/shell]
Se você adicionar um novo solo-knife, descreva o seguinte (definindo o diretório temporário usado pelo solo-knife)
[shell]mkdir -p ~/.chef vi ~/.chef/knife.rb knife[:solo_path] = '/root/chef-solo' livro de receitas_path ['/root/chef-repo/site-cookbooks', '/root/chef-repo/site-cookbooks'] dados_bag_path '/root/chef-repo/data_bags' criptografado_data_bag_secret '/etc/chef/encrypted_data_bag_secret'
mv ./*rpm /usr/local/src/[/shell]
Definindo variáveis de ambiente Ruby
[shell]vi /root/.bashrc export PATH="$HOME/.rbenv/bin:$PATH:/root/.rbenv/versions/1.9.2-p290/bin" eval "$(rbenv init -)" export EDITOR=vi
Bash[/shell]
Se você usar o livro de receitas opscodeCommunity, crie um repositório git e faça um commit
Inscreva-se na página a seguir
https://community.opscode.com/users
Pegue a nova chave privada abaixo e salve-a
http://community.opscode.com/users/your\_userid/usuário\_key/novo
[shell]vi /root/.chef/pkey.pem Pendurar a chave privada vi /root/.chef/knife.rb cookbook_path ['/root/chef-repo/site-cookbooks','/root/chef-repo/cookbooks'] cliente_key '/root/.chef/pkey.pem'[/shell]
O livro de receitas OpsCodeCommunity pode ser recuperado com o comando knife, mas deve ser gerenciado no repositório e comprometido no git
[shell]cd /root/chef-repo git init Reinicializado repositório Git existente em /root/chef-repo/.git/ git config --global user.email "hoge@isao.co.jp" git config --global user.name "hoge hoge" git add . git commit -m 'first commit'[/shell] Agora você pode pegar o livro de receitas com a faca (continuarei pegando a receita separadamente)
Referência:
Como criar múltiplas instâncias com Vagrant 1.1 + vagrant-aws Instalar, configurar e usar o VirtualBox em detalhes virtualbox.orgComo vagrant up o EC2 com o Vagrant 1.1Como iniciar uma instância de CentOS na Amazon EC2 usando o Vagrant 1.1 Os plugins do Vagrant que uso
Continua. Em seguida, pretendo escrever sobre a configuração do Vagrantfile e receitas, papéis, etc.
Olá. Aqui é a Komiya da plataforma.
Chef está popular hoje em dia.
Por isso vou escrever um artigo que me permita surfar essa onda e testar de acordo com o ambiente do produto.
Quero chegar rápido ao Serverspec, mas desta vez vou escrever apenas um artigo sobre introdução e receitas da próxima vez.
Está no nível de testar, então tenho a sensação de que será uma receita que vale a pena refatorar.
Aliás, o ambiente que será tentado converter para Chef desta vez é migrar para VPC. (A configuração é web2, db2, stg1, nat1.) Use ELB. Acho que solo é suficiente. )
Como parece possível usar VPC com Vagrant-AWS, vou usar Knife-solo enquanto uso Vagrant para gerenciamento de configuração.
É possível salvar o estado do sistema operacional e revertê-lo vinculando o vagrant e o sahara.
Parece que o Knife-Solo pode tentar apagar o rubi em /sbin e substituí-lo, então certifique-se de não usar rubi na sua aplicação.
Como vou colocar vagrant, vou colocar uma versão maior que a Ruby 1.8.7 com rbenv. (Série CentOS5)
Implantando primeiro o Oracle VirtualBox
O motivo de incluí-lo é iniciar e gerenciar instâncias no Vagrant-aws.
[shell]cat /etc/redhat-release CentOS release 5.8 (Final) yum install libXmu libXt mesa-libGL qt qt-x11 SDL
wget http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2-4.2.12\_84980\_el5-1.x86\_64.rpm rpm -ivh VirtualBox-4.2-4.2.12_84980_el5-1.x86_64.rpm[/shell]
Introduzida uma versão mais nova que a ruby-1.8.7
[shell]yum install ruby ruby-devel rdoc irb rubygems yum install git --enablerepo=rpmforge[/shell]
Instalação do RBENV
[shell]git clone git://github.com/sstephenson/rbenv.git ~/.rbenv[/shell]
As duas linhas seguintes são adicionadas para definir o caminho de rbenv
[shell]vi ~/.bashrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" fonte ~/.bashrc[/shell]
Instalando o ruby-build
[shell]git clone git://github.com/sstephenson/ruby-build.git cd ruby-build sudo ./install.sh Instalado ruby-build em /usr/local
rbenv install -l rbenv install 1.9.2-p290[/shell]
Especifique a versão padrão
[shell]rbenv global 1.9.2-p290 rbenv rehash[/shell]
Verificação de Versão
[shell]rubi -v[/shell]
Localização da Gema
~/.rbenv/versions/número de versão/lib/ruby/gemas/número de versão/gemas
- Instalar vagrant (1.1 ou superior) e plugins
Não consigo pegar no gem, então baixo o pacote
[shell]wget http://files.vagrantup.com/packages/64e360814c3ad960d810456add977fd4c7d47ce6/vagrant\_x86\_64.rpm rpm -ivh vagrant_1.2.2_x86_64.rpm rpm -ql vagrant|grep bin
vagrant -v yum install -y rubygem-nokogiri yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel vagrant plugin install vagrant-aws vagrant plugin install sahara vagrant plugin install vagrant-vbguest[/shell]
Não preciso de uma imagem do sistema operacional, mas preciso de uma caixa, então adicione uma caixa fictícia
[shell]vagrant box adicione dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box vagrant box list[/shell] e crie um arquivo de configuração no vagrant init, mas escreva separadamente
・Introdução do solo de faca
[shell]gem install bundler gem install knife-solo --pre gem install knife-solo_data_bag gem list chef-solo --version Chef: 11.4.4[/shell] Se você adicionar um novo knife-solo, descreva o seguinte (definindo o diretório temporário usado pelo knife-solo)
[shell]mkdir -p ~/.chef vi ~/.chef/knife.rb knife[:solo_path] = '/tmp/chef-solo' livro de receitas_path ['/root/chef-repo/site-cookbooks', '/root/chef-repo/site-cookbooks']
mv ./*rpm /usr/local/src/[/shell]
Definindo variáveis de ambiente Ruby
[shell]vi /root/.bashrc export PATH="$HOME/.rbenv/bin:$PATH:/root/.rbenv/versions/1.9.2-p290/bin" eval "$(rbenv init -)"
Bash[/shell]
Referência:
Como criar múltiplas instâncias com Vagrant 1.1 + vagrant-aws Instalar, configurar e usar o VirtualBox em detalhes virtualbox.orgVagrant 1.1 vagrant up EC2Como iniciar uma instância CentOS na Amazon EC2 usando o Vagrant 1.1 Os plugins do vagrant que eu uso
Clique aqui para o restante da série de artigos↓
Sobre o ambiente antes de escrever uma receita no Chef-Solo (Vagrantfile, papel, nó, dados_bags) Escrever uma receita para um procedimento existente no Chef 1 (configuração padrão) Escrever uma receita para um procedimento existente no Chef 2 (criado pelo usuário) Escrever uma receita para um procedimento existente no Chef 3 (servidor WEB) Escrever uma receita para um procedimento existente no Chef 4 (servidor de banco de dados) Escrever uma receita para um procedimento existente no Chef 5 (munin, zabbix) Testar uma receita escrita no Chef (serverspec)