O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
→
Puppet
Master
Puppet
DB
Puppet
Explorer* Mcollective
Server
Puppet
Agent
Mcollective
Client
Mcollective
Server
Puppet
Agen...
Control
Machine
Ansible
Tower	/	
Rundeck
Powershell
Remoting
SSH	
Server
"Arquitetura"	Ansible
Control
Machine
Salt
Master
Saltpad*
Arquitetura	Salt
salt-ssh Salt
Minion
ZeroMQ
Salt
Minion
ZeroMQ
Salt
Minion
SSH
package	{	'openssh-server':
		ensure	=>	installed,
}
file	{	'/etc/ssh/sshd_config':
		source		=>	'file:///vagrant/puppet/s...
-	hosts:	all
		name:	Install	SSH	Server
		tasks:
		-	package:	name=openssh-server	state=present
		-	template:
						src:	s...
openssh-server:
		pkg.installed:
				-	name:	openssh-server
		service.running:
				-	name:	ssh
				-	enable:	True
		file.m...
$binaries	=	["run",	"build",	"update",	"foo"]
$binaries.each	|String	$binary|	{
		file	{"/usr/local/bin/myapp-$binary":
		...
-	hosts:	all
		tasks:
		-	name:	create	symlinks	for	our	app
				file:	>
						state=link	src=/opt/myapp/bin/{{	item	}}
			...
{%	for	binary	in	['run',	'build',	'update',	'foo']	%}
/usr/local/bin/myapp-{{	binary	}}:
		file.symlink:
				-	target:	/op...
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Próximos SlideShares
Carregando em…5
×

Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade

2.473 visualizações

Publicada em

Puppet, Ansible e Salt são 3 das principais ferramentas livres de gerência de configuração no cenário atual (some a elas apenas Chef e CfEngine e temos todos os principais atuais nomes dessa categoria).

As 3 ferramentas tem crescido muito nos últimos anos, se tornando cada vez mais populares. As necessidades de gerenciar ambientes em escalas cada vez maiores, o crescimento de metodologias ágeis e da cultura DevOps, entre outros fatores, tem tornado cada vez mais necessárias e pervasivas a automação de processos e testes, e a abordagem de infraestrutura como código.

É apresentado o básico sobre cada ferramenta e sobre o "ecossistema" de cada uma, comentar e discutir as principais diferenças entre elas e fornecer aos participantes uma série de referências e incentivos para que eles possam descobrir mais e avaliar qual a mais adequada para os seus ambientes. São mostrados também alguns exemplos de código fazendo a mesma tarefa em cada uma.

Associado à apresentação estou criando um ambiente Vagrant no meu github com as várias ferramentas e exemplos prontos para uso: https://github.com/dgmorales/vagrant-cfgmgmt-sandbox.

Esta apresentação foi realizada em um Meetup DevOps Carioca em abril/2016 e FISL17 em julho/2016. Ela está disponível online também em http://dgmorales.info/talks/cm-pas.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade

  1. 1. →
  2. 2. Puppet Master Puppet DB Puppet Explorer* Mcollective Server Puppet Agent Mcollective Client Mcollective Server Puppet Agent Arquitetura Puppet
  3. 3. Control Machine Ansible Tower / Rundeck Powershell Remoting SSH Server "Arquitetura" Ansible Control Machine
  4. 4. Salt Master Saltpad* Arquitetura Salt salt-ssh Salt Minion ZeroMQ Salt Minion ZeroMQ Salt Minion SSH
  5. 5. package { 'openssh-server': ensure => installed, } file { '/etc/ssh/sshd_config': source => 'file:///vagrant/puppet/sshd_config', owner => 'root', group => 'root', mode => '0644', notify => Service['ssh'] # require => Package['openssh-server'], } service { 'ssh': ensure => running, enable => true, }
  6. 6. - hosts: all name: Install SSH Server tasks: - package: name=openssh-server state=present - template: src: sshd_config dest: /etc/ssh/sshd_config owner: root group: root mode: 0644 notify: - restart ssh - service: name=ssh state=started handlers: - name: restart ssh service: name=ssh state=restarted
  7. 7. openssh-server: pkg.installed: - name: openssh-server service.running: - name: ssh - enable: True file.managed: - name: /etc/ssh/sshd_config - source: salt://sshd_config - user: root - group: root - mode: 644 - watch_in: - service: openssh-server
  8. 8. $binaries = ["run", "build", "update", "foo"] $binaries.each |String $binary| { file {"/usr/local/bin/myapp-$binary": ensure => link, target => "/opt/myapp/bin/$binary", } }
  9. 9. - hosts: all tasks: - name: create symlinks for our app file: > state=link src=/opt/myapp/bin/{{ item }} dest=/usr/local/bin/myapp-{{ item }} force=yes with_items: - run - build - update - foo
  10. 10. {% for binary in ['run', 'build', 'update', 'foo'] %} /usr/local/bin/myapp-{{ binary }}: file.symlink: - target: /opt/myapp/bin/{{ binary }} {% endfor %}

×