Latest Entries »

Primer paso

 

Ejecutar el siguiente comando para conocer los discos disponibles

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL, ejemplo:

 

root@:# sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME FSTYPE SIZE MOUNTPOINT LABEL
sda 100G
└─sda1 ext4 100G / cloudimg-rootfs
sdb ext4 1000G

EN este ejemplo montaremos sdb

  • Ejecutar sudo fdisk / dev / sdb
  • A continuación, escriba o y pulse enter # crea una nueva tabla
  • A continuación, escriba n y pulse enter # crea una nueva partición
  • A continuación, escriba p y pulse enter # hace una partición primaria.
  • A continuación, escriba 1 y pulse enter # lo crea como la 1ª partición
  • Finalmente escriba w # esto escribirá cualquier cambio en el disco.

Bueno, ahora tienes una partición, ahora necesitas un sistema de archivos.

Ejecutar sudo mkfs.ext4 / dev / sdb1

Ahora puedes añadirlo a fstab

Debe añadirlo a / etc / fstab Utilice su editor de texto favorito

Tenga cuidado con este archivo, ya que puede causar fácilmente que su sistema no arranque.

Añadir una línea para la unidad, el formato se vería así.

#device mountpoint fstype opciones dump fsck

/ Dev / sdb1     / home/tu_nombre/mydata  ext4 defaults 0 1
Luego, en el próximo reinicio, se montará automáticamente.

 

EN este Post veremos como crear un grupo de imagenes auto escalables en Google Cloud segun el consumo de CPU, esto permite crecer automaticamente horizontalmente en instancias cuando tenemos picos de consumo y luego automaticamente volver a una sola sola VM. Esto nos permite ahorran en costos y lograr que el sitio seguira online  y ademas tener tolerancia a fallos

1º paso
Crear VM Instance

 

En automation – Startup Script colocar el siguiente script que instalara Apache y publicara un hello World

#! /bin/bash
apt-get update
apt-get install -y apache2
cat <<EOF > /var/www/html/index.html
<html><body><h1>Morettimaxi.com.ar – Hello World</h1>
<p>This page was created from a simple startup script!</p>
</body></html>
EOF

01-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Probar que el sitio funciona con la ip Publica que nos da la VM creada:

03-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

 


Borrar la VM

Editar la configuracion de la VM, destildando la opcion “Delete boot disk when instance is deleted”

04-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

Eliminar la VM

 

 

05-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Creamos una imagen desde el disco de la instancia creada anteriormente

 

06-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

Seleccionamos Sorce Disk el disco de la isntancia anterior:

07-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Luego seleccionamos crear “instance template”. Seleccionando la imagen creada anteriormente y tildando HTTP traffic.

08-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Creamos un grupo de instancias:

Seleccionado como imagen template la q creamos en el paso anterior

09-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

Elegimos el tipo de autoscale, en nuestro ejemplo seleccionamos  CPu, luego se selecciona el porcentaje de CPU que queremos como limite para crear una nueva instancia, el minimo de instancias y el maximo. Y el periodo que se tomarà para bajar una instancia en el caso que el cpu este por debajo del limite.

10-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Creamos un Load Balance para que distibuya el trafico entre el grupo de instancias:

11-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

Creamos un Load balance HTTP:

12-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

 


Para acceder al sitio podemos acceder desde la ip publica del load balancing:

03-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Verificamos que tenemos soloa una VM creada, ya que el CPU esta por debajo del limite

 

14-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


hacemos pruebas de Stress al servidor, en mi caso para esta prueba simple use el AB de apache (https://httpd.apache.org/docs/2.4/programs/ab.html) con el objetivo de forzar a la VM y que cree una nueva VM.

16-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar


Como veremos el sistema auto creo una nueva VM:

15-compute-engine-google-cloud-auto-scaling-espanol-morettimaxi-com-ar

 

 

Con docker 12 hay problemas con pushear repos a AWS y Kubernetes de google engine:

Error;:

denied: Unable to access the repository; please check that you have permission to access it.

Solucion Eliminar la linea

"credsStore": "whatever"

Que esta en el archivo:
 ~/.docker/config.json

Docker es una tecnologia que trabaja con contenedores. En este ejemplo veremos como en un solo servidor poder tener varios contenedores escuchando el mismo puerto ,80 por ejemplo,  y segun la URL nos rediriga al contenedor deseado.

Vamos a utilizar nginx-proxy : https://github.com/jwilder/nginx-proxy

 

  1. COmo primer paso vamos a levantar a levantar el nginx-proxy

2016-09-07-12_37_00-select-administrator_-windows-powershell

Con docker ps validamos que este levantado

2- Ahora levantamos el contenedor docker que deseemos en el puerto 80. Pero con un host por ejemplo:

docker run -d  -e  VIRTUAL_HOST=test.morettimaxi.com.ar  –name morettimaxi -v /path/to/html_files:/usr/local/apache2/htdocs/ httpd:2.4

 

y levantamos otro contenedor por ejemplo un Sonar:

 

docker run -d -p 80 -e VIRTUAL_HOST=foo.bar.com -e ALLOW_OVERRIDE=true tutum/apache-php

 

2016-09-07-14_19_55-select-administrator_-windows-powershell

Ahora los 2 sitios estaran publicados en el puerto 80 y en ngnix hara el redirrecioamiento:

 

2016-09-07-14_19_26-program-manager

 

2016-09-07-14_19_41-program-manager

 

 

 

 

  • Paramos el Mysql

sudo /etc/init.d/mysql stop

  • Iniciar Mysql sin password

sudo mysqld_safe –skip-grant-tables &

  • Conectar a Mysql y cambiar contraseña
    mysql -uroot
    use mysql;
    update user set password=PASSWORD(“mynewpassword”) where User=’root’;
    flush privileges;
    quit
  • Reiniciar Mysql

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start

Comando Powershell, para listar usuarios inactivos por mas de 90 dias.

 

Search-ADAccount -AccountInactive -TimeSpan ([timespan]90d) -UsersOnl | select SamAccountName

 

Para deshabilitar estos usuarios:

Search-ADAccount -AccountInactive -TimeSpan ([timespan]10d) -UsersOnly | Set-ADUser -Enabled $false -WhatIf

COn este script se puede mover computadoras de Unidad organizativa (OU) dependiendo del nombre, string, o pueden generar otra consulta , como por ejemplo sistema operativo, locacion…Es muy util cuando se tiene varias sucursales o se debe reorganizar el Active directory principalmente para delegar permisos segun sector, o para la aplicacion de politicas de grupo.

 

#################################################################
# This script will help to move bulk ad computer accounts into target OU
# Morettimaxi.com.ar
#################################################################

# DOnde buscar computadoras
$SearchOU = “CN=Computers,DC=truelogic,DC=local”

Write-Host ” Importing AD Module….. ”

#Importing AD Module
import-module ActiveDirectory

Write-Host ” Importing Move List….. ”
#FUncion para mover pcs
function MvPcs($list){
if ($list.count -ne 0) {
Write-Host ” Moving Computer Accounts…”
#Ou de destino
$destinationOU = ‘OU=test1,OU=Computers,OU=TrueLogic,DC=truelogic,DC=local’
Write-Host ” Starting import computers …”
foreach($computer in $list) {get-adcomputer $computer| Move-ADObject -TargetPath $destinationOU}

$countPC = ($list).count
Write-Host ” Completed Move List ”
Write-Host ” $countPC computers of have been moved ”
}
}

#funcion Generar listado de pcs con cierto nombre
function Createlist($name,$string){
$list = Get-ADComputer -Searchbase $SearchOU -Filter ‘SamAccountName -like $string’ | Select -Exp Name
Write-Host $list $list.count

MvPcs($list)

}

#Llamar a funcion createlist. Primer parametro enviar Pais y en el segundo el string a buscar.
Createlist tldev TL-DEV-*

En este pequeño script veran como modificar el display name de todos los usuarios o podran filtrarlos por departamento, pais por ejempolo:

$users = Get-User -ResultSize Unlimited -Filter “Recipienttype -eq ‘UserMailbox'”
$users | ForEach-Object{
$displayname='{0} {1}’ -f $_.FirstName, $_.LastName + ” [Morettimaxi Argentina]”
write-Host “Setting: $displayname” -fore green
$_ | Set-user -DisplayName $displayname
}

 

Filtrar por departamento, ejemplo compras:

 

$users = Get-User -ResultSize Unlimited | where { $_.Department -eq “compras”}
$users | ForEach-Object{
$displayname='{0} {1}’ -f $_.FirstName, $_.LastName + ” [Morettimaxi Argentina]”
write-Host “Setting: $displayname” -fore green
$_ | Set-user -DisplayName $displayname
}

 

 

En este post veremos como exportar los usuarios actuales y sus  datos , para luego modificarlos con Excel y por ultimo realizar un update de los campos de todos los usuarios con una sola linea de powershell.

Primero un repaso de como conectarse con Powershell a Office365

Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred

 

Obtener listado de usuarios activos , nosotros en este ejemplo obtendremos: Departamento, primer nombre, apellido, telefoni, titulo, ciudad , adeamas pdoran obtener mas datos como pais, estado. En este link encontran la lista completa: https://msdn.microsoft.com/en-us/library/azure/dn194133.aspx

 

get-MsolUser | select UserPrincipalName,DisplayName,isLicensed,Department,firstname,lastname,mobilephone,title,city | export-CSV  users-export-morettimaxi.csv

 

Deberan abrir el csv en Excel y modificarlo:

modificar-usuarios-powershell-office365

 

Una vez modificada deberan correr este comando en Powershell:

$csv = Import-Csv “.\users-export.csv” | ForEach {Set-user $_.UserPrincipalName -Title $_
title -Department $_.department -FirstName $_.FirstName -LastName $_.LastName -Mobilephone _.Mobilephone -city $_.city}