Mostrando entradas con la etiqueta nube. Mostrar todas las entradas
Mostrando entradas con la etiqueta nube. Mostrar todas las entradas

jueves, 14 de diciembre de 2023

¿Cómo instalo OwnCloud en Ubuntu?

Durante el discurso del 19 de enero de 1948 concerniente a la inauguración del Tren de las Nubes, Juan Perón enseñó cómo instalar OwnCloud en Ubuntu Server.

¡Estimados Señores!

Este augusto día inauguramos el ferrocarril Trasandino del Norte, que une las ciudades de Salta con la chilena de Antofagasta, como Obra de Unión de los Pueblos. En nuestras tierras pasa por Cerrillos, Rosario de Lerma, San Antonio de los Cobres, Salar de Pocitos, Toco-Toco, Caipe y Socompa, en un recorrido de 571 km del lado argentino, y cruzado al territorio hermano de Chile, las queridas localidades de Victoria, Palestina y Antofagasta, en los 331 kilómetros que tiene allí la traza. 

Forman parte de su ánima 33 puentes de acero y 21 túneles con una longitud total de 3.234 metros. La altura máxima del ramal alcanza los 4.475 metros en el imponente macizo del Abra de Chorrillos, lo que le ha valido el cariñoso apelativo de "Tren de las Nubes",

Siempre me han dicho que el Peronismo está en las nubes, e indudablemente que este nos inspira la concreción de una vía de los datos que hermane Pueblos: un troncal capaz de unir centros de datos propios controlados y conducidos por el Justicialismo. Es esto a lo que aspiramos.

Sin embargo, cuando muchos se refieren a "la nube" no lo hacen para homenajear a este querido tren, sino que lo hacen para ocultar el hecho de hablar de un almacenamiento informático proporcionado en una computadora ajena, que sólo ofrece acceso limitado desde la red de datos Internet. 

La premisa de que a estas máquinas es posible cargarle nuestro contenido digital  a veces sin costo monetario, y que éste podría estar disponible para su descarga en múltiples dispositivos, podría parecer - a primera vista - sumamente beneficiosa. Contaríamos así con la dicha y comodidad de contar con la información digitalizada al alcance telemático sin necesidad de portar medios de almacenamiento de masa para suplir la demanda. Estos señores dicen que podríamos acceder a ellos a través de los enlaces de datos...

Pues bien señores, es mi opinión que en estos menesteres, el costo es lo de menos: el hecho que la máquina sea ajena (y para peor, normalmente de una omnímoda corporación oligárquica) nos cuadra el más grave riesgo al que alguien pueda someterse sin llevar puesto un casco y un fusil. No podía ser de otra manera: ¡estas empresas lucran con los metadatos de tales archivos, a la par de reservarse su uso con fines inconfesables!

Googl€, Amazon y Micro$oft son sólo algunas de las empresas que - de mano de una opresión interesada - que ofrecen este tipo de soluciones bajo los nombres de Googledriv€, AW$, y One$pace respectivamente. Sin embargo, estas soluciones son prohibitivas ya que el contenido es sometido a inspección y no va cifrado de manera alguna.

La lucha de los hombres por la Liberación de su software es una que acarrea riesgos y es dificultosa, pero entrenándonos para suplir las verdaderas necesidades de la lid explica la manera de salir victoriosos. 

En el caso de los servicios de almacenamiento en la nube, lo procedente no es usar un servicio - por mas gratuito que sea - y mucho menos pagarlo si es una empresa extranjera. Lo ideal es montar nuestra propia nube con software libre, de la misma forma en la que nacionalizamos los ferrocarriles.

Para ello contamos con la plataforma de alojamiento de archivos OwnCloud, liberada bajo AGPLv3. Junto con el servicio de alojamiento propio - que podemos dar a los usuarios que queremos en medios de almacenamiento propios en nuestro servidor - también contaremos con las funcionalidades de ofimática que nos ofrece OnlyOffice. Este nos permitirá resguardo, cifrado opcional, visualización y edición - incluso colaborativa - de documentos de todo tipo.

Desde el punto de vista de software, OwnCloud requiere una instalación base de Ubuntu 22.04 Server con SSH activado, y una partición /var con el espacio de disco deseado (en mi caso, haré uso de unos 20 Terabytes). El directorio de OwnCloud se encotnrará en /var/www/owncloud. La versión de PHP debe ser al menos la 5, (por defecto en Ubuntu Server 20.04 se puede instalar PHP 7.4). Asimismo debemos contar con el Módulo de Multiprocesador (MPM) correcto (debemos leer las notas Versión de OpenSSL, importantes cuando se planea usar encriptación).

En este caso haremos las preparaciones de de instalación en la máquina de servicio munida con Ubuntu Server con los servicios web Apache, de base de datos MariaDB y de programación PHP 7.

Naturalmente, si contamos con un usuario común escalable en el servidor, debemos utilizar el comando sudo su e ingresar la contraseña de administrador correspondiente. 

Primero introduciremos los comandos que configuren el servicio del nombre de dominio que va a tener la instalación de de OwnCloud, especialmente el nombre de dominio que queremos para la máquina:

Configurar el nombre de dominio

mi_dominio="nube.peronismo.org"
echo $mi_dominio

hostnamectl set-hostname $mi_dominio
hostname -f

Generar contraseñas fuertes

A continuación generamos las contraseñas seguras para el usuario administrador de OwnCloud y para el usuario de la base de datos SQL. Estas se resguardarán  en /etc/.sec_admin_pwd.txt y /etc/.sec_db_pwd.txt:

sec_admin_pwd=$(openssl rand -base64 18) ;
echo $sec_admin_pwd > /etc/.sec_admin_pwd.txt ;
sec_db_pwd=$(openssl rand -base64 18) ;
echo $sec_db_pwd > /etc/.sec_db_pwd.txt

Acto seguido conviene aseguramos que todos los paquetes del servidor estén instalados y totalmente actualizados, a la vez que comprobamos que tenemos PHP a mano en el repositorio APT. Para hacer esto, seguimos las instrucciones siguientes:

apt update && apt upgrade -y

Debemos crear ahora un guion de ayuda que nos simplifique la tarea de ejecución de los comandos occ de OwnCloud. Esto lo haremos ingresando:

FILE="/usr/local/bin/occ"
cat <<EOM >$FILE
#! /bin/bash
cd /var/www/owncloud
sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "\$@"
EOM

A este guion de OwnCloud llamado /usr/local/bin/occ le otorgamos permisos de ejecución:

chmod +x $FILE

Con las preparaciones listas, instalamos las dependencias necesarias para todo:

apt install -y apache2 libapache2-mod-php mariadb-server openssl redis-server wget php-imagick php-common php-curl php-gd php-gmp php-bcmath php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis php-ldap php-phpseclib

Si bien es opcional, es sabido recomendar conectar nuestro servidor a unidades de almacenamiento externas de Window$ a través del protocolo Samba. Para ello habríamos de instalar el módulo smbclient php. Aunque normalmente en el caso de las máquinas de escritorio con GNU con Linux no suele ser el caso, no es raro que otras unidades de almacenamiento y discos puedan accederse a través de la red, y en tal caso el cliente Samba por terminal nos vendría de perillas para que el servidor integre las mismas también a nuestra OwnCloud. Para ello primero instalamos sus dependencias:

apt-get install -y libsmbclient-dev php-dev php-pear

...y luego instalaríamos el módulo smblclient php por medio de pecl:

pecl channel-update pecl.php.net ;
mkdir -p /tmp/pear/cache ;
pecl install smbclient-stable ;
echo "extension=smbclient.so" > /etc/php/7.4/mods-available/smbclient.ini ;
phpenmod smbclient ;
systemctl restart apache2

Revisamos entonces si fue activado de manera exitosa:

php -m | grep smbclient

El servidor nos debería devolver lo siguiente:

libsmbclient
smbclient

...denunciando la activación de ambos módulos - ahora en más automática - toda vez que inicie el servicio.

No viene mal instalar el herramental útil adicional, que sería necesario en caso de tener que revisar y depurar errores en el servidor. Lo haremos con:

apt install -y unzip bzip2 rsync curl jq inetutils-ping  ldap-utils smbclient  

Configurar servidor web Apache

Ya deberíamos contar con el servidor web Apache instalado en nuestro Ubuntu Server. Este nos daría el servicio a la web por intermedio de un entorno virtual de uso. Para que funcione aceitadamente junto a OwnCloud debemos configurarlo con ciertas especificaciones. 

Para ello creamos un fichero de configuración /etc/apache2/sites-available/owncloud.conf para el host virtual de OwnCloud:

FILE="/etc/apache2/sites-available/owncloud.conf"
cat <<EOM >$FILE
<VirtualHost *:80>
# descomentar la línea siguiente si la variable fue configurada
#ServerName $mi_dominio
DirectoryIndex index.php index.html
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud>
  Options +FollowSymlinks -Indexes
  AllowOverride All
  Require all granted

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/owncloud
 SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
EOM

Finalmente, activamos esta configuración de Host Virtual, mediante:

a2dissite 000-default
a2ensite owncloud.conf

Configurar la Base de Datos


Como en todo uso telemático, se recomienda ejecutar el comando mysql_secure_installation para asegurar la instalación de la base de datos SQL MariaDB y ponerle una contraseña fuerte al usuario de la base de datos ("sec_db_pwd").

Nos aseguramos que el nivel de aislamiento de transacciones esté configurado, y el performance_schema esté activado.

sed -i "/\[mysqld\]/atransaction-isolation = READ-COMMITTED\nperformance_schema = on" /etc/mysql/mariadb.conf.d/50-server.cnf
systemctl start mariadb
mysql -u root -e \
  "CREATE DATABASE IF NOT EXISTS owncloud; \
  CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY '${sec_db_pwd}'; \
  GRANT ALL PRIVILEGES ON *.* TO 'owncloud'@'localhost' WITH GRANT OPTION; \
  FLUSH PRIVILEGES;"

Se recomienda ejecutar el guion mysqltuner para analizar la configuración de la base de datos luego de usarlo con carga de trabajo durante varios días.

Finalmente, activamos los módulos recomendados del servidor Apache:

Instalación de OwnCloud

Con el servidor Web Apache y la base de datos SQL funcionando, podremos descargar e instalar OwnCloud.

Descargar ownCloud

cd /var/www/ ;
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 ;
tar -xjf owncloud-complete-latest-tar.bz2 ;
chown -R www-data. owncloud

Instalar ownCloud


Recuerda configurar una contraseña fuerte para el usuario de administración de ownCloud, y proveer la contraseña del usuario de la base de datos previamente obtenida, bajo el argumento --database-pass.
occ maintenance:install \
    --database "mysql" \
    --database-name "owncloud" \
    --database-user "owncloud" \
    --database-pass ${sec_db_pwd} \
    --data-dir "/var/www/owncloud/data" \
    --admin-user "admin" \
    --admin-pass ${sec_admin_pwd}

Configurar los Dominios Confiables de ownCloud

mi_ip=$(hostname -I|cut -f1 -d ' ')
occ config:system:set trusted_domains 1 --value="$mi_ip"
occ config:system:set trusted_domains 2 --value="$mi_dominio"

Configurar las automatizaciones de cron

Cron nos resultará últil para automatizar distintas tareas automáticas de mantenimiento. Configuramos el trabajo de segundo plano en cron:

occ background:cron

Configuramos la ejecución de un trabajo cronometrado cada 15 minutos y la limpieza de restos todas las noches a las 3 am:

echo "*/15  *  *  *  * /var/www/owncloud/occ system:cron" \
  | sudo -u www-data -g crontab tee -a \
  /var/spool/cron/crontabs/www-data
echo "0  3  *  *  * /var/www/owncloud/occ dav:cleanup-chunks" \
  | sudo -u www-data -g crontab tee -a \
  /var/spool/cron/crontabs/www-data

Si necesitamos sincronizar los usuarios de un LDAP o un servidor Active Directory, podemos agregar este cron adicional. De esta forma cada 4 horas cronometradas se producirá la sincronización de los usuarios LDAP en ownCloud y se desactivarán aquellos que no están disponibles en ownCloud. Además se obtendrá una bitácora en  /var/log/ldap-sync/user-sync.log para su eventual depurado.

echo "1 */6 * * * /var/www/owncloud/occ user:sync \
  'OCA\User_LDAP\User_Proxy' -m disable -vvv >> \
  /var/log/ldap-sync/user-sync.log 2>&1" \
  | sudo -u www-data -g crontab tee -a \
  /var/spool/cron/crontabs/www-data
mkdir -p /var/log/ldap-sync
touch /var/log/ldap-sync/user-sync.log
chown www-data. /var/log/ldap-sync/user-sync.log

Configuramos Caché y Acerrojado de Ficheros

occ config:system:set \
   memcache.local \
   --value '\OC\Memcache\APCu'
occ config:system:set \
   memcache.locking \
   --value '\OC\Memcache\Redis'
occ config:system:set \
   redis \
   --value '{"host": "127.0.0.1", "port": "6379"}' \
   --type json

Configuramos la rotación de bitácoras

FILE="/etc/logrotate.d/owncloud"
sudo cat <<EOM >$FILE
/var/www/owncloud/data/owncloud.log {
  size 10M
  rotate 12
  copytruncate
  missingok
  compress
  compresscmd /bin/gzip
}
EOM

Finalizar la Instalación

Nos aseguramos que los permisos sean los correctos:

cd /var/www/
chown -R www-data. owncloud

Y con esto debería haber quedado instalado ownCloud. Ahora podremos confirmar que está listo para activar el protocolo seguro de conexión HTTPS (por ejemplo usando certificados Let’s Encrypt) dirigiendo nuestro navegador web browser a la URL o IP de nuestra propia instalación de ownCloud (en este caso, nube.peronismo.org). 

Para evaluar la correcta instalación en el servidor y para ver si funcionan los comandos occ, podremos ejecutar lo siguiente:

occ -V
echo "Su contaseña de Admin es: "$sec_admin_pwd
echo "Está documentada en /etc/.sec_admin_pwd.txt"
echo "Su contraseña de Base de Datos es: "$sec_db_pwd
echo "Está documentada en /etc/.sec_db_pwd.txt y en su config.php"
echo "Su ownCloud está accesible desde: "$mi_dominio
echo "La instalación ha sido completada."
No viene mal almacenar esta información de forma segura en un medio aparte, y resguardarlo en caja fuerte.
Podremos encontrar la documentación del servidor de OwnCloud aquí.

martes, 21 de abril de 2020

Canonical dispone modelo de actualización rodante para el kernel de Ubuntu en la Nube Amazon

Hace años que Canonical dedica esfuerzos a Ubuntu Server para las AMI (Imágenes de Máquina de Amazon) que corren en los entornos AWS (Servicios Web de Amazon) bajo la nube EC2 de Amazon.

Todo estos nombres esconden esencialmente infraestructura computacional ajena y propiedad de Amazon, a la cual se puede acceder mediante un enlace de tipo Secure Shell (SSH). Bajo este esquema se dispone de una sesión remota de una o más imágenes de Ubuntu, el cual pueden ejecutarse y configurarse de forma rápida y eventualmente ampliable.

Estos sistemas o "servicios virtualizados" normalmente ejecutan un kernel especial de tipo Linux de la rama aws, que es diferente a la versión de normal que encontramos en la versión de Ubuntu Desktop (para Escritorio, la cual utiliza un kernel de la rama -generic o genérica).


Pues bien señores, a partir de hoy, este kernel linux-aws 4.15 que Canonical emplea para la nube de Amazon cambiarán su forma de operar, optándose por un modelo de actualización "rolling kernel".
Esto significa que la actualización del núcleo del sistema operativo virtual no se realizará en dichas máquinas remotas por iteraciones o versiones especificadas como sucedía anteriomente, sino que pasará a implementarse de manera corrida.

Canonical aduce que este modelo de operatoria permitirá contar en dichos sistemas remotos con las últimas correcciones de bugs y mejoras de performance en el asignado de las tareas computacionales, así como implementar el uso de visitantes hipervisores, y contenedores para los usuarios. Esto supuestamente manteniendo la misma calidad que las versiones LTS (de soporte a largo término) del sistema operativo a las que estamos acostumbrados en nuestros servidores locales y sistemas de escritorio.

Un modelo de Rolling Kernel implica transicionar el kernel linux-aws por defecto desde una versión base a la siguiente como parte de un ciclo continuado de mejoras. El kernel nuevo será el kernel de la última versión interín (sin soporte a largo plazo) de Ubuntu. Al aplicar este modelo directamente a la versión actual de 18.04, significa que el kernel linux-aws será uno de la versión 4.15 y al lanzarse, se convertirá en el kernel basado en la versión 5.3, la cual es parte fundante de la versión 19.10 de Ubuntu.

Hoy, dicho kernel 5.3 se ha hecho disponible para su evaluación bajo el nombre de kernel "linux-aws-edge". Canonical ha recomendado a todos los usuarios correr este kernel con sus cargas de trabajo normales en ambientes no productivos a fin de evaluarlo. Es importante tener en cuenta que tanto los kernels "-edge" y los kernels de lanzamiento rodante estén completamente testeados antes de que lanzarse definitivamente a los clientes, y asegurar que cumplen exactamente con la misma calidad y durabilidad que todos los kernels deben contar antes de su lanzamiento.

Toda vez que se publique un nuevo kernel de la rama linux-aws, el usuario podrá percibir la actualización del mismo de una de estas dos formas:
  • al lanzar la última Imagen de Máquina de Amazon (AMI) contará con la versión nueva del kernel;
  • Al aplicar las actualizaciones de paquetería o actualizaciones de seguridad automática, recibirán el nuevo kernel.

¿Como me preparo para el kernel rodante?

Para instalar el kernel 5.3 linux-aws-edge disponible para evaluación por parte de los clientes de máquinas virtuales Amazon Machine Images (AMI), deben de introducirse en la terminal remota los siguientes Comandos de Organización:

Primero, revisamos que la instancia en ejecución remota cuente con el kernel linux-aws estándar (versión 4.15.0):

ubuntu@ip-xxx-xxx-xxx-xxx$ uname -r

...a lo cual La nube de Amazon nos debería responder:

4.15.0-xxxx-aws

Acto seguido, instalamos el kernel linux-aws-edge:

ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt update
ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt install -y linux-aws-edge

Nota: si se nos consulta acerca de la nueva versión del archivo /boot/grub/menu.lst, seleccionamos la opción por defecto "Mantener la versión local instalada actualmente / keep the local version currently installed".


... y reiniciamos la instancia virtual remota de Ubuntu:

ubuntu@ip-xxx-xxx-xxx-xxx$ sudo reboot

Al regresar a la instancia virtual, nos volvemos a loguear con SSH y confirmamos que la instancia virtual ahora esté utilizando el kernel linux-aws-edge (v5.3.0):

ubuntu@ip-xxx-xxx-xxx-xxx$ uname -r

...a lo cual el sistema remoto de Amazon debería respondernos con:

5.3.0-xxxx-aws

¿Qué hacer si no deseo un rolling kernel en la AMI?

Los trabajadores saben bien que nada de lo que dice el Capital debe ser confiado por los hombres que luchan. Si no abhelamos un kernel rodante y en cambio deseamos seguir con el kernel 4.15 en nuestra máquina virtual remota AMI (la cual continuará recibiendo soporte completo y actualizaciones a lo largo del período de soporte a largo término (LTS), habremos de ingresar los siguientes comandos en el usuario remoto de la nube:

ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt update
ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt install linux-aws-lts-18.04

miércoles, 25 de marzo de 2020

¿Cómo sincronizo Google Photos desde la Terminal en Ubuntu?



Lejos de sumirse en la inactividad, Juan Perón aprovechó el ostracismo del Exilio para abocarse al estudio y a una intensa actividad intelectual y autoral. Entre las exposiciones clásicas de este período se encuentra cómo sincronizar contenidos de Google Fotos en Ubuntu.


(...)
¡Trabajadores!

La ignominia ha caido sobre la Patria, más eso no puede amilanarnos. Una férrea organización y una claridad meridiana en el objetivo, que ha de ser volver para ser mejores, nos centra en un destino que podemos calificar como inexorable.

Para llevarlo a cabo, indudablemente que la organización y la unidad de mando son los principios que nos provee el arte, y que hemos de practicar. Esto redundará en la necesaria economía de fuerzas y a la óptima aplicación de los medios de los que disponemos en el tiempo y el lugar donde se decida la acción.
Un Conductor no puede dejar comprender estos principios fundantes en la medida que jamás dispondrá de los recursos suficientes para abarcar todo. Este ha de saber que sólo podrá hacer uso apenas de los medios necesario para poder accionar en un escenario preconcebido, y eso en el mejor de los casos. Si por imprevisión no ha imaginado un suceso, la resolución del mismo se tornará en sobremanera dificultosa. Es por tal motivo que el estudio y la previsión son ejes fundantes de su accionar político.

Pues bien señores, la telemática ofrece los mismos principios, y por ello podremos estudiarlas como un válido ejercicio de Conducción. Veamos. Un sistema computado carece de los recursos para poder hacer todo, y debemos por tanto preveer e instrumentar para hacer frente a los imponderables de consumo de cómputo más conocidos. La práctica de los teléfonos llamados inteligentes era conectarlos a una PC para proceder a la transferencia de contenidos.

Pero una mala evolución ha llevado a emplear conexión inalámbrica para conectarnos ya no a un sistema de almacenamiento local, sino a un hardware remoto de alquiler, algo quienes los vivos no han temido en calificar como una esotérica "nube". No dejan de ser otra cosa que una computadora ajena sobre la que específicamente no tenemos de control, y es en ella donde cargamos nuestros preciados datos. Sólo un iluso plantearía que ello es seguro. Desde el Justicialismo sabemos que en el absoluto caso de tener que hacerlo, siempre hemos contar con un respaldo local de dichos datos en nuestro propio sistema y en medios de almacenamiento sobre los que ejerzamos dominio y control total.

Este es una de una de las más someras acciones que podremos contemplar para Combatir al Capital. Otro proceder será sobrecargar dichos sistemas ajenos de alquiler con si los datos que tenemos, molestando y denegando el servicio a todos. Multiplicada esta acción por millones dejará de convirtirnos en una patada de enano, sino que permitirá asestar un mortífero golpe a la sinarquñia y a un sistema imperialista e injusto.

Uno de los servicios extendidos en la nube es Google Fotos. El mismo nos permite almacenar y organizar las fotografías y videos que subamos desde nuestros dispositivos a los servidores del omnímodo Google.

Pues bien, cualquiera sea el camino que deseemos, para todos ellos podremos utilizar gphoto-sync. Se trata de una herramienta para la línea de comandos escrita en Python y capaz de ejecutarse localmente en nuestro sistema GNU con Linux. Su propósito es respaldar los contenidos y álbums de Google Photos en nuestro/s sistema/s empleando la API repectiva de Google.  Una vez configurada, puede ejecutarse de forma regular para asegurar que todas nuestras fotografías y videos almacenados remotamente allí también se almacenen localmente en nuestro propio disco.

Instalar gphotos-sync

Tenemos dos métodos para instalar gphotos-sync: utilizando PIP3 o por medio  Snap.

El método que os recomiendo es utilizando Pip3. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

sudo apt install python3-pip -y ;
pip3 install gphotos-sync ;
mkdir ~/.config/gphotos-sync/
echo "export PATH=\"\$PATH:\$HOME/.local/bin\"" >> ~/.bashrc ;
. ~/.bashrc

Otra posibilidad es instalar gphotos-sync gracias a su paquete Snap. En el caso de que anhelemos este proceder en nuestro sistema, abrimos una terminal e ingresamos el siguiente Comando de Organización:

sudo snap install gphotos-sync

Configuración

Una vez instalada la aplicación, habremos de configurar varias cosas, lo cual puede parecer un poco complicado de hacer. Debemos llevar a cabo los siguientes pasos:

Paso 1. Creamos un nuevo Proyecto en Google Cloud usando el Administrador de Recursos de la Nube. Con nuestro navegador web nos dirijimos a https://console.cloud.google.com/cloud-resource-manager y creamos un nuevo proyecto haciendo clic en Crear un Proyecto.
Tras indicarle un nombre (por ejemplo, "sincronizador google photos" o algo similar), podremos presionar Crear.

Paso 2. Nos dirijimos a https://console.cloud.google.com/apis/library?project=_, preionamos en Seleccionar un Proyect.

Acto seguido buscamos la Librería "Photos Library API" y hacemos clic sobre ella.
Se nos mostrará la web de la API Librería de Fotos. Para habilitarla para nuestro proyecto de sincronizador de Google Photos, debemos hacer clic en Habilitar.

 y la activamos para el proyecto que acabamos de crear.

Paso 3. Con nuestro navegador nos dirijimos a https://console.cloud.google.com/, y nos aseguramos que tenemos seleccionado el proyecto correcto desde el menú desplegable superior. Luego hacemos clic en APIs y Servicios en la barra lateral, y finalmente hacemos clic en Credenciales.
Creamos una ID de Cliente OAuth haciendo clic en +Crear Credenciales / ID de Cliente OAuth.

Cuando se nos solicite la Pantalla de Consentimiento de OAuth debemos elegir el tipo de permiso. El permiso normal es Externo. elegir el tipo de aplicación, debemos indicar "Otra".
El sistema nos indicará nuestra ID de clientes y nuestro secreto de cliente ("token").

Paso 4. Una vez que nuestro ID de Cliente de Auth 2.0 para el proyecto esté creado, lo descargarenos a nuestro(s) sistema(s). Este tendrá la forma de un fichero de extensión .json. Para bajarlo hacemos clic en el ícono de Descarga correspondiente que aparecerá en el apartado Credenciales.

Naturalmente en el cuadro de diálogo de descarga de nuestro navegador, escogemos Guardar archivo. Normalmente el mismo irá a parar a nuestra carpeta ~/Descargas/.


Tengamos presente que dicho archivo de extensión .json tendrá realmente un nombre alfanumérico muy largo, pero para que funcione correctamente debemos renombrarlo a client_secret.json. En Ubuntu podremos renombrar el archivo seleccionandolo y presionando F2.

Una vez que lo hayamos renombrado como client_secret.json debemos colocarlo en el directorio de configuración local que corresponda a nuestro método de instalación: si instalamos gphotos-sync por medio de Pip3 habremos de copiar el archivo client_secret.json en el directorio ~/.config/gphotos-sync/. En cambio, si anteriormente optamos por instalar gphotos-sync por medio de  Snap, el directorio que debemos crear será ~/snap/gphotos-sync/current/.config/gphotos-sync/, y allí será donde copiaremos el fichero client_secret.json.

 En el primer caso, podríamos utilizar un comando en la terminal similar a éste:


mv ~/Descargas/client_secret_??????????.json ~/.config/gphotos-sync/gphotos-sync/client_secret.json ;



Sincronizar Google Fotos en Ubuntu

Debemos decidir crear una carpeta de base en la cual queramos que se almacenen nuestras fotografías sincronizadas. Como ejemplo utilizaré la carpeta /home/peron/gfotos/.
 

Creamos la carpeta base y luego ejecutamos el programa gphotos-sync y lo dirigimos a dicha carpeta. Para ello empleamos los siguientes comandos de organización:

mkdir /home/peron/gfotos/
gphotos-sync /home/peron/gfotos/

La aplicación se iniciará, y luego nos solicitará que hagamos clic en un link URL para chequear la ID OAuth.

03-03 13:16:01 WARNING  gphotos-sync 2.14.0 2020-03-03 13:16:01.333350 
Please go here and authorize, https://accounts.google.com/o/oauth2/….
Paste the response token here:

Copiamos el link URL y lo pegamos en nuestro navegador, donde habremos de loguearnos bajo la cuenta Google que queremos utilizar para sincronizar nuestras fotografías de Google Photo.

Conforme nos hayamos logueado y otorguemos permiso a nuestra colección de fotografías, nos será presentado con un "token" (código) de respuesta y autorización. A su vez debemos copiar y pegar dicho token en la terminal donde se ejecutaba gphoto-sync, específicamente en la última línea donde decía "Paste the response token here" ("pegue el token de respuesta aquí"), y presionamos Enter.


Si todo salió bien, la autorización surtirá efecto, y se procederá a dar inicio a la sincronización de las fotografías y videos. Esto se indicará mediante el siguiente mensaje peronista:

03-03 13:16:04 WARNING  Downloading Photos … 


Si no, podría tener que realizar nuevamente el paso indicado anteriormente, teniendo especial cuidado de loguearse con la cuenta de Google correcta, y copiar el token cuidadosamente.

Naturalmente debe comprender que subir o bajar las fotografías de la nube Google Photos puede tomar un largo tiempo, especialmente si nuestra colección de imágenes es gigantesca y nuestra conexión a internet es extremadamente lenta. En el caso de que tengamos unas poquísimas fotos, podría tardar apenas unos segundos.

Es importante considerar y tener en cuenta que la carpeta de base contendrá a su vez subcarpetas empleadas por el programa gphotos-sync. Al menos dos de ellas son importantes, estas son:
  • photos - Contiene todas los archivos de las fotografías y los videos que tengamos en nuestro Google Photo, organizadas en carpetas con la estructura photos/AAAA/MM (donde AAAA/MM es la fecha en la que los datos EXIF de la fotografía indica donde fueron tomadas las mismas. Los nombres de archivos dentro de la carpeta serán los originales con los cuales se subieron las mismas, excepto que los nombres duplicados recibirán un sufijo "(n)", siendo "n" es el número de duplicación del fichero.
  • albums - Contiene una jerarquía de carpetas que representa el conjunto de álbums y álbums compartidos que tenemos en nuestro Google Photos. Todos los archivos aquí realmente son enlaces dinámicos dirigidos a las fotografías reales localizadas en la subcarpeta photos. Los nombres de carpeta serán 'albums/AAAA/MM Nombre de Álbum Original'.

Monitorear la sincronización

gphotos-sync mantendrá una bitácora de su activdad al mismo tiempo que se sincronizan nuestras fotografías. Esta tendrá la forma de un archivo de texto llamado gphotos.log. Esta bitácora se irá llenando conforme se ejecute gphotos-sync, de modo que es una buena herramienta para rastrear cómo se está ejecutando el proceso.

En este caso, podremos verla con:

tail ~/gfotos/gphotos.log

03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23992 photos/2020/02/pocho.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23993 photos/2020/02/evita.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23994 photos/2020/02/campora.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23995 photos/2020/02/asado.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23996 photos/2020/02/pulqui.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23997 photos/2020/02/fundacion.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23998 photos/2020/02/dsc_2343.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 23999 photos/2020/02/justicialista.jpg
03-03 13:25:07 gphotos.GooglePhotosIndex INFO  Indexed 24000 photos/2020/02/dsc-3245.jpg
03-03 13:25:07 gphotos.LocalData INFO     Saving Database …

Una vez que la operatoria de sincornización se haya completado, recibiremos un breve sumario similar a este:

03-03 13:26:08 WARNING  Downloaded 0 Items, Failed 1, Already Downloaded 65748
03-03 13:26:09 WARNING  Done.

Sincronización Periódica

Si contamos con experiencia administrando servidores, bien podríamos preferir crear un trabajo de cron simple que se de a sincronizar nuestras fotografías con una regularidad fijada de antemano. Por ejemplo, podremos disponer el intervalo que sea más apropiado basados en nuestra velocidad de conexión y hábitos, o en base a cuán seguido tomamos fotografías. Por ejemplo, para sincronizar nuestras fotografías diariamente a las 1:30 AM, podríamos utilizar.
 
0 3 * * * /snap/bin/gphotos-sync /home/usuario/gfotos/

...en tanto, una sincronización todas las horas podrías ser así:

0 * * * * /snap/bin/gphotos-sync /home/usuario/gfotos/

Naturalmente, ahora podremos tener confianza que nuestras fotografías están sincronizadas en cualquier computadora en la que ejecutemos nuestra aplicación gphotos-sync.

lunes, 16 de mayo de 2016

¿Cómo sincronizo mis computadoras con la nube Google Drive en Ubuntu?

Juan Perón advierte sobre los riesgos intrínsecos de la mal llamada "computación en la nube", mientras que nos enseña cómo instalar y usar el cliente InSync para GoogleDrive en Ubuntu.

¡Descamisados!

La computación en la nube es algo altamente positivo y beneficioso en nuestra Era de la informática, pues nos permite contar con nuestro archivos compartidos entre varios dispositivos asociados. Ello nos permite un fácil acceso telemático a contenidos que podrían estar esparcidos en distintos medios de almacenamiento en diferentes dispositivos y a lo largo de variados sistemas operativos.

Naturalmente que esta centralización tiene sentido siempre y cuando la nube sea propia, los dispositivos sean propios, y los sistemas operativos sean libres. Si no fuese así, nos encontraríamos que dicha "computación en la nube" no es más que un engaño para tontos.

La computación no es un servicio, es un derecho que hemos de ejercer. Confiar en alguien para que haga nuestra computación es como confiarle a alguien que nos dé la Libertad. Por supuesto que puede hacerse, pero el costo será que esa libertad siempre estará en manos de otro. Ciertos vivos de siempre se aprovechan a cambio de la propensión del hombre a evitar el trabajo, y le intentará proveer "libertad en lata".

Con el conocimiento necesario, todos pueden establecer su propia "nube" y emplearla para trabajar o para el ocio. En nuestro Movimiento Justicialista enseñamos día a día a los Hombres que la Libertad es un derecho que ellos mismos se han dado y lo han instaurado en la Constitución, que es nuestra Ley de Leyes. Hemos instaurado el Software Libre como una extensión de dicha libertad de los hombres y su Comunidad Organizada en una comunidad organizada de hombres que usan la computación para la felicidad de la Patria y la grandeza de la Nación.

Estos derechos los hemos hecho inalienables. Nadie que tenga un sano corazón propondrá eliminar derechos del Trabajo, de la Ancianidad, de la Niñez o del Software Libre de una Constitución que es para todos. Quién así lo hiciera sería un Criminal. No existen Argentinos tan poco Patriotas...

Con la informática en la nube sucede lo mismo. La impagable privacidad, el costo pecuniario de todo el trabajo y los contenidos (cuyo costo telemático siquiera puede medirse) estarán depositado en un servidor bajo el cual no tendremos el control. Lo haremos por intermedio de clientes para los cuales tampoco contamos con control ni son software libre y para peor, están bajo manejo de gente con intenciones inconfesables. Nadie debería operar en tales condiciones, siquiera aceptarlas como válidas.

Pero la Libertad ¡ay! a veces también significa la libertad de cometer errores. Nosotros no somos ni Santos ni Dioses, tan solo somos hombres, y a veces el hombre - que es el único ser capaz de tropezar con la misma piedra - ha de replicar a Cristo en aquello de sentir el mal para obrar el bien. Es un ejemplo que se consigue por el mal hacer que por el quehacer, y si bien no es lo ideal, es válido para el aprendizaje. Cuando un individuo opera a través de dicho temperamento diremos que es un rescatado, cuando es un Pueblo el que lo hace, diremos que ha solucionado un error histórico. Innumerables ejemplos de ello hay en la historia, pero también es cierto que existen grandes imperios que por menos errores cometidos que emplear software privativo, ni siquiera están dibujados en los mapas.

Para quien haya servido dicha advertencia que como Conductor os doy, pueden encontrar clientes efectivos para servicio en la nube GoogleDrive para nuestro sistema GNU con Linux en general y en Ubuntu en Particular.

Por ejemplo, podremos contar con una prueba por 15 días de InSync, una aplicación compatible con los mal llamados servicios de nube de Google, hábil para sincronizar nuestro sistema local con dicho servicio de aplicación remoto.

Esta aplicación cuenta con una versión general multiplataforma de buen funcionamiento y estética práctica, pero también con útiles versiones capaces de integrarse con distintos gestores de archivo del mundo libre (incluyendo el Nautilus de GNOME, Caja de MATE, Dolphin de KDE etc). Por otro lado hace gala de un con cliente "headless" para operar desde la Terminal (sin requerir entorno gráfico).

Para instalar el cliente de GoogleDrive Insync puedo descargar el paquete o el instalador que corresponda a mi arquitectura desde la web oficial de InSync.

Si quisiéramos instalarlo podríamos hacerlo desde la Terminal. Para ello abro una consola con Ctrl+Alt+T e ingreso el bloque de comandos que corresponda a mi arquitectura:
  • Si tengo Ubuntu de 64 bits:

cd ~/Descargas/
wget http://s.insynchq.com/builds/insync_1.3.6.36076-trusty_amd64.deb
sudo dpkg -i insync_1.3.6.36076-trusty_amd64.deb

  • Si tengo Ubuntu de 32 bits:

cd ~/Descargas/
wget http://s.insynchq.com/builds/insync_1.3.6.36076-trusty_i386.deb
sudo dpkg -i insync_1.3.6.36076-trusty_i386.deb

Para ejecutar el cliente InSync vamos a Aplicaciones / Internet / InSync.

La primera vez que ejecutemos la aplicación, ésta nos solicitará asociarla a nuestra cuenta de Google.com en la cual tenemos el GoogleDrive. Podremos asociar una o varias cuentas inclusive.
Conforme asociemos una y autoricemos el despliegue, debemos indicarle al programa mediante el botón "Select Folder", la creación de una carpeta específica en la cual se sincronizará el cliente (normalmente esta carpeta será ~/usuario@gmail.com/, pero podremos cambiarla).

Asimismo, estarán seleccionadas la opción de sincronizar todo ("Sync All"), pero podremos indicar específicamente cuáles serán las carpetas el cliente sincronizará.

El cliente InSync ofrece ciertas ventajas también en el manejo de los Documentos, pues nos permite indicar si queremos convertir dichos contenidos de los archivos a los formatos de Google en caso de ser posible, convertirlos a formatos abiertos, o no hacerlo y dejarlos en formato privativo.

Una vez configurados estos aspectos, presionamos el botón Finish y finalizará la instalación y configuración básica.

Conforme tengamos asociada nuestra cuenta GoogleDrive, el lciente dará inicio a la sincronización automática en nuestra carpeta local con la/s carpetas/s de la cuenta/s elegida/s de Google Drive. Su contenido irá apareciendo en la carpeta local que le hayamos indicado. Naturalmente que este proceso puede durar varios minutos u horas dependiendo del tamaño de nuestro GoogleDrive, de nuestra velocidad de conexión, y de la cantidad de material que tengamos almacenado.

Ya podremos utilizar nuestra carpeta local para manejar la carpeta remota de GoogleDrive. Podremos agregar archivos que se subirán al servidor remoto, o eliminar archivos localmente que se eliminarán también del servidor.

Por defecto, InSync se ejecuta toda vez que inicia el sistema, pero podremos alterar dicho comportamiento desde las propiedades de la aplicación (íncono del engranaje). Debemos seleccionar la categoría App, y luego destildar la opción "Start Insync when computer starts".

También podremos hacerlo desde la Terminal, si no somos partidarios del mismo. Para ello debemos utilizar los siguientes comandos:

insync set_autostart no

Asimismo contaremos con una serie interesantes de comandos que podremos operar también desde la Terminal. Todos se encuentran en el cliente gráfico, pero en la Terminal también podremos ejecutarlos por medio del cliente "headless". Los principales son:

insync start: Carga en memoria el servicio del cliente InSync.
insync quit: Remueve de memoria el servicio del cliente InSyuc.
insync get_status: Nos informa del estado del servicio.
insync get_sync_progress: Nos informa del progreso actual de la sincronización
pause_syncing: Pausa la sincronización. Ideal cuando no tenemos ancho de banda momentáneamente limitado, para evitar errores.
resume_syncing: Continua la sincronización pausada.

insync get_account_information: Nos informa sobre la cuenta asociada.
insync add_account: Asocia una cuenta nueva de GoogleDrive.
insync remove_account: Desasocia de InSync una cuenta de GoogleDrive.

Hay varias opciones más. Podremos verlos todos con:

insync -h

...y podremos solicitar ayuda sobre algunos en particular con:

insync -help comando


La integración con nuestro gestor de archivos se ofrecerá instalar opcionalmente una vez que el programa se ejecute por segunda vez.
Esta opción no es absolutamente obligatoria: significa integrarlo a Caja, Nautilus, u otros e incoporar las opciones de sincronizar otras carpetas en GoogleDrive usando InSync y el gestor de archivos (le agrega la funcionalidad mediante un clic de botón derecho del mouse).

Desinstalar InSync:

Si por algún motivo quisiéramos desinstalar InSync en Ubuntu, podríamos hacerlo a través de la Terminal, con los siguientes Comandos de Organización:

Primero cerramos el programa con:

insync quit

Y luego lo desinstalamos con:


sudo apt-get remove insync
rm -r ~/.config/Insync

Final y opcionalmente reiniciamos el equipo con:

sudo reboot

martes, 7 de agosto de 2012

¿Cómo instalo el cliente NixNote para Evernote en Ubuntu?

Un verdadero Conductor sabe cómo trabajar de manera organizada. Desde su exilio madrileño, Juan Perón expone cómo utilizar en Ubuntu el cliente libre NixNote para acceder a los servicios de productividad de la nube Evernote.

¡Trabajadores!

En una tarea de Conducción centralizada, que es la verdadera forma de la Conducción, un ambiente de trabajo organizado es fundamental para facilitar el trabajo y reducir las cargas laborales. La organización vence al tiempo, y sin este precepto no se puede conducir un Movimiento ni esperar el éxito de la más nimia tarea laboral. Las condiciones que me impone el exilio me obliga entonces a llevar gran control sobre todos los factores del encuadramiento, y para ello qué mejor que hacerlo con Software Libre.

Para tomar notas y sincronizarlas, suelo recomendar el simple Gnote. un programa Justicialista pensado para emular pequeñas notas, ideas fuerza y recordatorios. A diferencia de Tomboy, Gnote no usa librerías non-sanctas, sino que es totalmente libre. Incluso permite sincronizarlas a través de un servidor local.
Ahora bien, el Justicialismo, como Movimiento de Masas inclusivo, debe abarcar a todo aquél que se identifique con las tres banderas de libertad, justicia y soberanía. Existen trabajadores que migran desde sistemas basados en la Nube, y ellos también deben ser capaces de utilizar Software Libre. Al fin y al cabo, ser libre no es un obrar según la propia gana, sino una elección entre varias posibilidades profundamente conocidas.

Uno de los servicios más extendidos para el propósito de organización es el Evernote. Se trata de una aplicación cliente para un servidor remoto con características de clase (según sea en modalidad gratuita o paga). El servicio gratuito - que es el que interesa a los descamisados - permite almacenar información en forma de texto, fotografías, anotaciones de voz, trozos de páginas webs o correos electrónicos, en un tráfico de unos 60 megabitios mensuales. Aunque limitado, nos es muy útil para trabajos de gestión, organización, y cualquier cosa que nos permita nuestra imaginación, sobre todo cuando tenemos múltiples dispositivos. Precisamente, sobre otras aplicaciones locales, Evernote cuanta con la ventaja de tener residencia en la "nube" y por lo tanto permitirnos acceder a los contenidos generados a través de cualquier equipo con un cliente instalado (máquinas de escritorio, portátiles o dispositivos móviles).

Para utilizarlo debemos dar de alta una cuenta y confirmarla. Naturalmente, todo ello lo haremos desde la página oficial del servidor Evernote. ¿Es correcto utilizar este servicio? Indudablemente, no es lo ideal y ha de preferirse trabajar localmente. Pero siempre será mejor si hacemos uso de un cliente libre y de un sistema operativo libre si ya lo teníamos de antes, y si vamos a usarlo para lograr la auténtica y definitiva liberación de la Patria.

Para Ubuntu se ha desarrollado NixNote (anteriormente conocido como Nevernote). Se trata de un cliente para la nube Evernote, escrito en Java y publicado bajo licencia libre GPLv2. Si bien no se trata de un cliente oficial, es funcional y podremos utilizarlo con confianza. Para ello podremos descargar la última versión (1.2) en la arquitectura que corresponda a nuestro sistema, ya sea en 64 bitios o 32 bitios.

Al descargar el paquete DEB que corresponda, deberán abrirlo mediante un doble clic, y se cargará en el Centro de Software de Ubuntu. Para instalarlo en nuestro sistema, simplemente deben presionar el botón "Instalar" e ingresar la contraseña de Conductor.
Una vez completada con éxito la instalación, lo ejecutaremos desde el menú Aplicaciones / Internet / NixNote.
El cliente se encuentra en el idioma de Braden. Por supuesto que debemos sincronizarlo incluyendo nuestro usuario y contraseña creado anteriormente en la página oficial de Evernote. Para hacer que el programa se loguee con nuestro Usuario, hemos de ir al menú Edit / Preferences y escoger la solapa Connection. En los campos Userid y Password debemos indicar nuestro usuario y contraseña con los cuales nos hemos dado de alta al servicio Evernote.
Podemos indicarle que recuerde nuestra contraseña de usuario tildando "Remember Userid Password"), o que se conecte automáticamente al iniciar NixNote al tildar la opción "Automatic Connect".

Si no estamos conectados al servidor Evernote, podremos hacerlo desde el menú Tools / Connect, y una vez establecido el vínculo con la nube ya seremos capaces de sincronizar los contenidos presionando la tecla F9. Esto subirá las notas creadas localmente y bajará las notas existentes en nuestro usuario.

Tengamos en cuenta que si ya tenemos cargadas notas anteriormente en el programa y usamos una cuenta, la primera vez que utilicemos el cliente NixNote podría tardar en descargar todas nuestras notas. Para conocer cuánto espacio o cuanto flujo mensual de datos nos resta, podemos ir a Tools / Account Information.

Por supuesto, si necesitamos hacer uso del servicio y no tenemos el cliente instado, podremos rumbear nuestro navegador de internet y loguearnos desde aquí.