samedi 27 janvier 2018

Ansible

Qu'est ce que Ansible?


Ansible est une plate-forme logicielle libre pour la configuration et la gestion des ordinateurs (wikipedia - Ansible). Ansible est utilisé pour créer un environnement dans l'OS
comme le fait Chef.

Comment utiliser Ansible


1. Préparatifs

Créer deux dossiers "CentOsAnsibleHost" et "CentOsAnsibleGuest" comme ça:




Et créer les machines virtuelles.
cd C:\vagrant\CentOsAnsibleHost
vagrant init bento/centos-7.3

N'oubliez pas configurer "private network" dans le Vagrantfile.


Et démarrer la machine virtuelle.
vagrant up

L'autre aussi:
cd C:\vagrant\CentOsAnsibleGuest
vagrant init bento/centos-7.3
Configurer "private network" dans le Vagrantfile. Mais utiliser "192.168.33.11" pour IP de la machine. On a besoin de utiliser un adresse IP différent de l'autre.


Et démarrer la machine virtuelle.
vagrant up


2. Installer Ansible dans la machine hôte (host).

Installer les dépendances d'Ansible dans la machine virtuelle d’adresse IP 192.168.33.10:
$ sudo yum install -y epel-release
$ sudo yum install -y sshpass python-devel python-pip
$ sudo python -m pip install paramiko PyYAML Jinja2 httplib2

Et installer Ansible:
$ sudo yum install ansible --enablerepo=epel-testing

Vérifier si c'est bien installé:
ansible --version

Si un message comme celui-ci apparaît, c'est réussi.

Pour utiliser Ansible, la commande comme celui-ci est utilisé:
ansible 192.168.33.11 -m ping
ansible: la commande d'Ansible.
192.168.33.11: Adresse IP de la machine virtuelle d'invité (guest)
-m: Option de module
ping: Le nom de module

Utiliser cette commande pour ouvrir le fichier de "hosts" d'ansible:
$ sudo vi /etc/ansible/hosts

Et ajouter ça dans le fichier:
[web]
192.168.33.11

Exécuter ces commandes dans la machine d'hôte  (192.168.33.10) et produire une clef publique.
$ sudo ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): /vagrant/id_dsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Exécuter ces commandes dans la machine d'hôte et envoyer la clef publique à l'invité (guest):
$ sudo scp /vagrant/id_dsa.pub vagrant@192.168.33.11:/vagrant
$ sudo scp /vagrant/id_dsa.pub root@192.168.33.11:/vagrant
$ cat /vagrant/id_dsa.pub >> .ssh/authorized_keys

Ecrire la clef public dans le fichier "authorized_keys" dans la machine d'invité.
$ su
(the password is "vagrant")
# cd
# /vagrant/id_dsa.pub >> .ssh/authorized_keys
# su vagrant
$ cd
$ sudo cat /vagrant/id_dsa.pub >> .ssh/authorized_keys

Changer la configuration de la certification d'hôte:
$ sudo vi /etc/ssh/sshd_config
(add "PubkeyAuthentication yes" in the sshd_config file.)
$ sudo systemctl restart sshd

Changer la configuration de la certification d'invité:
$ sudo vi /etc/ssh/sshd_config
(add "PubkeyAuthentication yes" in the sshd_config file.)
$ sudo systemctl restart sshd

Si vous voulez utiliser vagrant, exécuter cette commande comme ça dans la machine virtuelle d’adresse IP 192.168.33.10:
$ sudo ansible 192.168.33.11 -m ping -u vagrant -k
SSH password is vagrant. Ou:
$ sudo ansible 192.168.33.11 -m ping -u root

Si un message comme celui-ci apparaît, c'est réussi.


Les commandes disponibles:
    all : Utiliser tous les serveurs écrits dans ce fichier: /etc/ansible/hosts
    -m ping : Utiliser le ping module
    -s : Utiliser "sudo" pour exécuter les commandes
    -k : Demander le mot de passe.
    -u vagrant : Utiliser user "vagrant"
    -a : les arguments à transmettre au module.
et beaucoup

On peut montrer "hello".
$ sudo ansible 192.168.33.11 -a "/bin/echo hello" -u vagrant -k



3. Playbook

Dans la machine virtuelle d’adresse IP 192.168.33.10, créer "Playbook" dans /vagrant
$ cd /vagrant
$ sudo touch dstat.yaml
$ sudo vi /vagrant/dstat.yaml
Ecrire comme ça dans dstat.yaml et l'enregistrer (:wq):
- hosts: web
  tasks:
   - name: Install dstat
     become: yes
     become_method: sudo
     yum: pkg=dstat state=installed update_cache=true

Exécutez cette commande et utiliser le Playbook.
ansible-playbook -s dstat.yaml -u vagrant -k


dstat a été installé dans la machine virtuelle d’adresse IP 192.168.33.11. :) Exécutez "dstat" dans la machine virtuelle d’adresse IP 192.168.33.11:
$ dstat


Si un message comme celui-ci apparaît, c'est réussi.
Ctrl + c pour arrêter dstat.

Comme vous voyez, nous pouvons contrôler et installer les paquets dans la machine de l'adresse IP 192.168.33.11  à partir de 192.168.33.10.
De cette façon, nous pouvons installer des paquets, créer des environnements et déployer des applications Web automatiquement à partir d'un serveur.


lundi 22 janvier 2018

Comment utiliser Chef et créer l'environnement de laravel automatiquement

Suivez les étapes d'ici et créez les cookbooks pour l'environnement de PHP.
Après, vous devriez avoir les cookbooks comme ca:


Créer Virtual Box pour chef


Nous allons créer une machine virtuelle. Créez un dossier pour le machine virtuelle et Vagrant. Et exécutez ces commandes dans l'invite de commandes. (Pas dans Powershell)


(Si vous ne savez pas comment utiliser Vagrant)
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant init bento/centos-7.3



Changez le fichier "Vagrantfile" et utiliser le "private network".

Et démarrez la machine virtuelle.
vagrant up

S'assurer qu'il y a un dossier .ssh dans C:\Users\John. Si il  n'y en a pas, créez le dossier comme ça:
cd C:\Users\John
mkdir .ssh




Et exécutez ces commandes :
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant ssh-config --host CentOsChef >> %USERPROFILE%/.ssh/config
"CentOsChef" est le nom de votre machine virtuelle. "ssh-config" commande est pour créer un fichier de configuration et pouvoir connecter la machine virtuelle facilement.

Ensuite, dans Powershell, créez cookbooks:
cd C:\Users\John\Documents\chef
chef generate cookbook cookbooks/app_httpd
chef generate cookbook cookbooks/app_mysql_server
chef generate cookbook cookbooks/app_php71u
chef generate cookbook cookbooks/app_php71u_mysqlnd

Créer un cookbook pour laravel


Ouvrez Powershell (ChefDK) et aller au dossier de Chef:
cd C:\Users\John\Documents\chef

Créez un cookbook pour laravel environment.
chef generate cookbook cookbooks/proj_laravel


Mettre la machine virtuelle à jour


Créez un cookbook pour mettre la machine virtuelle à jour:
chef generate cookbook cookbooks/vagrant_update

Ajoutez depends 'yum-ius' dans chef\cookbooks\vagrant_update\metadata.rb.
Ajoutez cookbook 'yum-ius' dans chef\cookbooks\vagrant_update\Berksfile.
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\vagrant_update\recipes\default.rb:
include_recipe 'yum-ius'

package ['kernel-devel', 'kernel-headers', 'dkms', 'gcc', 'gcc-c++'] do
  action   :install
end

package 'kernel' do
  action   :upgrade
end


Mettre le cookbook de laravel à jour



Ajoutez les lignes de code ci-dessous dans chef\cookbooks\proj_laravel\Berksfile
apps_path = 'C:/Users/Shu/Documents/chef/cookbooks/'
cookbook 'vagrant_update',     path: apps_path + 'vagrant_update'
cookbook 'app_httpd',           path: apps_path + 'app_httpd'
cookbook 'app_mysql_server', path: apps_path + 'app_mysql_server'
cookbook 'app_php71u',             path: apps_path + 'app_php71u'
cookbook 'app_php71u_mysqlnd',     path: apps_path + 'app_php71u_mysqlnd'

Ajoutez les lignes de code ci-dessous dans chef\cookbooks\proj_laravel\metadata.rb
depends 'vagrant_update'
depends 'app_httpd'
depends 'app_mysql_server'
depends 'app_php71u'
depends 'app_php71u_mysqlnd'

Ajoutez les lignes de code ci-dessous dans chef\cookbooks\proj_laravel\recipes\default.rb
include_recipe 'vagrant_update'
include_recipe 'app_httpd'
include_recipe 'app_mysql_server'
include_recipe 'app_php71u'
include_recipe 'app_php71u_mysqlnd'

service 'httpd' do
    action :restart
end

service 'mysqld' do
    action :restart
end

bash 'install_composer' do
  code <<-EOH
    curl -sS https://getcomposer.org/installer | php
    mv composer.phar /usr/local/bin/composer
    EOH
end

bash 'laravel_install' do
  code <<-EOH
    cd /vagrant
    curl -sS https://getcomposer.org/installer | php
    mv composer.phar /usr/local/bin/composer
    composer create-project --prefer-dist laravel/laravel laravel
  EOH
end

bash 'set_permission' do
  code <<-EOH
    chmod -R 777 /vagrant/laravel/storage
  EOH
end

ruby_block "httpd conf replace to make allowOverride all" do
  block do
    fe = Chef::Util::FileEdit.new("/etc/httpd/conf/httpd.conf")
    fe.search_file_replace(/\<Directory \"\/var\/www\/html\"\>[\s\S\n]*?\<\/Directory\>/,
                               "<Directory \"/var/www/html\" />Options FollowSymLinks\nAllowOverride All\nRequire all granted\n</Directory>")
    fe.write_file
  end
end

ruby_block "httpd conf replace to change document root" do
  block do
    fe = Chef::Util::FileEdit.new("/etc/httpd/conf/httpd.conf")
    fe.search_file_replace(/DocumentRoot \"\/var\/www\/html\"/,
                               "DocumentRoot \"/var/www/html/laravel/public\"")
    fe.write_file
  end
end

service 'httpd' do
    action :restart
end

service 'mysqld' do
    action :restart
end

Mettez les fichiers de Chef dans Powershell (ChefDK).
berks vendor -b cookbooks/proj_cake3/Berksfile --delete

Exécutez la commande ci-dessous et créer Laravel environment.
knife zero bootstrap CentOsChef -N chef_laravel -z -r 'recipe[proj_laravel]' --sudo

Attendez jusqu'à vous voyez le résultat dans Powershell (ChefDK)....
Après, vous pouvez aller à http://192.168.33.10/ et voir la page de laravel.









samedi 20 janvier 2018

Comment utiliser Chef et créer automatiquement des serveurs PHP

Téléchargez et installer Chef:
https://downloads.chef.io/chefdk

Vous pouvez télécharger Chef pour Windows sur le site web:


Apres le téléchargement, démarrez Chef:

Et vous verrez Powershell de Windows:


Exécutez cette commande et appuyez sur la touche y du clavier:
Set-ExecutionPolicy RemoteSigned
Fermez ChefDK et le réouvrir.

Créez un dossier pour Chef. Par exemple, C:\Users\John\Documents\chef.


Allez au dossier dans Powershell.
cd C:\Users\John\Documents\chef

Installez knife-zero:
gem install knife-zero

Créez un projet de Chef:
chef generate repo .

Les dossiers sont crées ainsi:

Supprimez le dossier d'exemple. Et créez "config.rb" un fichier de configuration.
rm -d -force -r cookbooks/example
rm -d -force -r data_bags/example
rm -force -r environments/example.json
rm -force -r roles/example.json
touch config.rb

Ajoutez "berks-cookbooks" dans le fichier ".gitignore". (n'importe où dans le fichier)

Ajoutez "cookbook_path ['berks-cookbooks']" dans le fichier "config.rb".


Créez un projet.
chef generate cookbook cookbooks/proj_lamp

Ensuite, on va créer un serveur virtuel. Créez un dossier d'un serveur virtuel et démarrer le serveur avec vagrant dans l'invite de commandes. (Pas Powershell maintenant)

(Si vous ne savez pas comment utiliser Vagrant)
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant init bento/centos-7.3



Changez le fichier de Vagrantfile et utiliser private network.

Et démarrez le serveur virtuel.
vagrant up

S'assurer qu'il y a un dossier .ssh dans C:\Users\John. Si il  n'y en a pas, créez le dossier comme ça:
cd C:\Users\John
mkdir .ssh




Et exécutez ces commandes :
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant ssh-config --host CentOsChef >> %USERPROFILE%/.ssh/config
"CentOsChef" est le nom de votre machine virtuelle. La commande "ssh-config" est pour créer un fichier de configuration et pouvoir connecter la machine virtuelle facilement.

Maintenant, dans Powershell, créez cookbooks:
cd C:\Users\John\Documents\chef
chef generate cookbook cookbooks/app_httpd
chef generate cookbook cookbooks/app_mysql_server
chef generate cookbook cookbooks/app_php71u
chef generate cookbook cookbooks/app_php71u_mysqlnd

Installer httpd


Allez au dossier de cookbooks/app_httpd et ajouter cookbook 'yum-ius' dans chef/cookbook/app_httpd/Berksfile:




Ajoutez depends 'yum-ius' dans chef/cookbook/app_httpd/metadata.rb:




Ajoutez les lignes de codes ci-dessous dans chef/cookbook/app_httpd/recipes/default.rb
include_recipe 'yum-ius'

package 'httpd' do
  action   :install
end

bash 'link_html' do
  code <<-EOH
    sudo rm -rf /var/www/html
    sudo ln -fs /vagrant /var/www/html
    EOH
end

service 'httpd' do
    action [:enable, :start]
end




Installer MySQL


Maintenant, il faut ajouter cookbook 'yum-ius' dans chef\cookbooks\app_mysql_server\Berksfile.
Ajoutez depends 'yum-ius' dans chef\cookbooks\app_mysql_server\metadata.rb.
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\app_mysql_server\default.rb :
include_recipe 'yum-ius'

package ['mariadb-server', 'mariadb-libs'] do
  action   :remove
end

bash 'wget_mysql' do
  code <<-EOH
    cd /vagrant
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    EOH
end

bash 'rpm_mysql57' do
  code <<-EOH
    cd /vagrant
    sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
    EOH
end

package 'mysql-server' do
  action   :install
end

service 'mysqld' do
    action [:enable, :start]
end

Installer PHP

Maintenant, ajoutez cookbook 'yum-ius' dans chef\cookbooks\app_php71u\Berksfile.
Ajoutez depends 'yum-ius' dans chef\cookbooks\app_php71u\metadata.rb.
Ajoutez les lignes de codes ci-dessous dans chef\cookbooks\app_php71u\recipes\default.rb.
include_recipe 'yum-ius'

package ['php', 'mod_php', 'php-common', 'php-cli', 'php-intl', 'php-json', 'php-mbstring', 'php-xml'] do
  action   :remove
end

# for any framework
package 'php71u'
package 'php71u-cli'
package 'php71u-intl'
package 'php71u-json'
package 'php71u-mbstring'
package 'php71u-xml'

Ajoutez cookbook 'yum-ius' dans chef\cookbooks\app_php71u_mysqlnd\Berksfile.
Ajoutez depends 'yum-ius' dans chef\cookbooks\app_php71u_mysqlnd\metadata.rb.
Ajoutez ci-dessous dans chef\cookbooks\app_php71u_mysqlnd\recipes\default.rb.
include_recipe 'yum-ius'

# libmysql is windows only
package ['php-mysql', 'php-mysqli', 'php-pdo', 'php-mysqlnd'] do
  action   :remove
end

# for any framework
package 'php71u-mysqlnd'
package 'php71u-pdo'


Mettre le projet à jour


Ajoutez les lignes de codes ci-dessous dans chef/cookbooks/proj_lamp/Berksfile
apps_path = 'C:/Users/John/Documents/chef/cookbooks/'
cookbook 'app_httpd',           path: apps_path + 'app_httpd'
cookbook 'app_mysql_server', path: apps_path + 'app_mysql_server'
cookbook 'app_php71u',             path: apps_path + 'app_php71u'
cookbook 'app_php71u_mysqlnd',     path: apps_path + 'app_php71u_mysqlnd'


Ajoutez le lignes de code ci-dessous dans chef/cookbooks/proj_lamp/metadata.rb
depends 'app_httpd'
depends 'app_mysql_server'
depends 'app_php71u'
depends 'app_php71u_mysqlnd'

Ajoutez les lignes de code ci-dessous dans chef/cookbooks/proj_lamp/recipes/default.rb
include_recipe 'app_httpd'
include_recipe 'app_mysql_server'
include_recipe 'app_php71u'
include_recipe 'app_php71u_mysqlnd'

service 'httpd' do
    action :restart
end

service 'mysqld' do
    action :restart
end

Exécutez ces commandes et mettre le projet à jour:
berks update -b cookbooks/proj_lamp/Berksfile
berks vendor -b cookbooks/proj_lamp/Berksfile --delete

Creez l'environment de PHP:
knife zero bootstrap CentOsChef -N chef_lamp -z -r 'recipe[proj_lamp]' --sudo
Et un serveur de PHP est créé automatiquement dans votre machine virtuelle.

Si vous voulez exécuter knife zero bootstrap.... une nouvelle fois, s'assurer qu'il n'y a pas chef_lamp.json dans ces dossiers chef\clients et chef\nodes. S'il y a chef_lamp.json, knife zero bootstrap.... ça ne fonctionnera pas.

mardi 16 janvier 2018

Si vous ne pouvez pas exécuter commandes dans le dossier partagé de Vagrant

Si vous ne pouvez pas exécuter commandes dans le dossier partagé de Vagrant:
$ sudo chown -R apache:apache /vagrant/cake

Si vous ne pouvez pas encore exécuter commandes, écrire comme çà dans le Vagrantfile:
config.vm.synced_folder "./", "/vagrant", owner: 'vagrant', group: 'apache', mount_options: ['dmode=777', 'fmode=777']
Et "vagrant reload".

Si vous ne pouvez pas encore exécuter commandes, ça peut être à cause de SE linux. Arrêter SE linux:
$ sudo getenforce
Enforcing
$ sudo setenforce 0
$ sudo getenforce
Permissive
Et "vagrant reload".

Migration et Bake (CakePHP3)

Contenu du didacticiel 


Didacticiel de la préparation
1. Vagrant et Virtual Box

2. Installer Apache

3. Installer MySQL

4. Installer PHP 7

CakePHP 3
1. Installation de CakePHP 3

2. Migration et Bake

Migrations

(Cakephp 3 cookbook: Migrations)

Migrations est utilisé pour créer ou modifier des tables à partir de fichiers php avec de simple opérations. Ainsi que de partager les modifications avec d'autres membres via les fichiers de migrations. Par exemple, exécutez cette commande:
$ cd /vagrant/cake
$ bin/cake bake migration CreateProducts name:string description:text created modified

Un nouveau fichier sera créée dans cake/config/Migrations.

À partir du fichier php, nous pouvons créer une nouvelle table. Maintenant, exécutez la commande suivante:
(Si vous ne pouvez pas l'exécuter, peut-être que votre autorisation dans le dossier partagé n'est pas configurée correctement. Voir cet article pour résoudre le problème.)
$ bin/cake migrations migrate

Une nouvelle table est créée automatiquement:

Vous pouvez vérifier la nouvelle table dans la base de données:
$ mysql -uroot -proot
mysql> show databases;
mysql> use test;
mysql> show tables;

Vous avez vérifié que la nouvelle table "products" a été créée. Comme vous avez pu le voir, avec migrations de CakePHP, vous pouvez créer de nouvelles tables facilement.

Les fichiers de migrations peuvent être partagés au sein d'une équipe alors vous pouvez partager la manière dont les tables doivent être créées, modifiés et supprimées à l'aide des fichiers de migrations.

Bake

(CakePHP3 cookbook: Bake)

À partir de cette table, nous allons créer un template de site Web. Exécutez la commande de Bake:
$ bin/cake bake all products


Cette commande veut dire "Créer tous les trois fichiers: controller, model, template." Et cette commande va créer automatiquement les fichiers de controller, model, et template pour la table "products".

Mais si vous voulez créer chacun d'entre eux séparément, exécutez ces commandes ci:
$ bin/cake bake controller products
$ bin/cake bake model products
$ bin/cake bake template products

Les fichiers de template seront automatiquement créés:

Allez sur le site Web et vérifiez les fichiers de template:
http://192.168.33.10/cake/products/

Les fichiers de template sont générés ainsi:


Avec CakePHP3, on peut créer facilement un site Web comme ça. Les commandes Bake et Migrations sont particulièrement utiles. On peut ainsi ajouter d'autres pages de cette manière.

En conclusion


Qu'est-ce que Migrations? --- C'est une commande utilisé pour créer ou modifier ded tables. Ainsi que de partager les modifications avec d'autres membres via les fichiers de migrations.
Qu'est-ce que Bake? --- C'est une commande utilisé pour créer automatiquement des fichiers de controller, model, et template pour une table.

samedi 13 janvier 2018

Comment utiliser Selenium

D'abord, Installez python3 dans votre ordinateur: Installer Python3 dans Windows

Démarrez votre machine virtuelle:
https://surlaprogrammation.blogspot.jp/2017/08/virtual-box-et-vagrant.html

Et allez à http://192.168.33.10/

Installez Chromedriver (pour votre machine hôte):
https://sites.google.com/a/chromium.org/chromedriver/downloads

Et changez l'emplacement du logiciel, par exemple"C:\Users\John\Documents\workspace\test".


Et faites la commande dans l'invite de commande et installer selenium.
pip install selenium

Écrivez ça dans un fichier de texte et changez le en fichier python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException

driver_path = "C:\\Users\\John\\Documents\\workspace\\test\\chromedriver.exe" #Changez ici

driver = webdriver.Chrome(driver_path)
driver.get("http://192.168.33.10")
title = driver.find_element_by_tag_name("title")
driver.quit()
#driver.close()

Faites cette commande dans l'invite de commande et démarrez le logiciel python.
cd C:\Users\John\Documents\workspace\test
python test.py

Il ouvrira automatiquement Chrome et ira http://192.168.33.10 et vérifier l'existence d'un "title" élément HTML.

Installer Python3 dans Windows

Installer Python3 (64bit)


D'abord, vous avez besoin d'installer Python3 pour utiliser Keras. Keras peut être utilisé uniquement avec la version 64 bit de Python3. Alors vérifiez que votre PC soit bien 64 bit.

Cliquer sur le lien de Python:
https://www.python.org/

Le site de Python

Sélectionner "Downloads" -> "WIndows"

Choisissez "Windows x86-64 web-based installer" de python 3.6.

Démarrer le programme d'installation. Cochez "Add Python to PATH".
Et suivez les instructions du programme pour installer la version 64 bit de Python3. 

Après l'installation, dans l'invite de commande, faites la commande pour vérifier si l'installation à réussit.
python -V

Python 3.6.3

Si la version est affichée, l'installation à réussit.

lundi 8 janvier 2018

La barre de défilement de Swing (Interface graphique)

C'est le code:
import javax.swing.*;
import java.awt.BorderLayout;

public class Main extends JFrame{

 Main(){ //Constructeur de Main class
     JTextArea textarea = new JTextArea("This is the JTextArea");

     JScrollPane scrollpane = new JScrollPane(); //la barre de défilement
     scrollpane.setViewportView(textarea);

     getContentPane().add(scrollpane, BorderLayout.CENTER);
  }

 public static void main(String[] args) {
     Main frame = new Main();

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setBounds(10, 10, 300, 200);
     frame.setTitle("This is the title");
     frame.setVisible(true);
 }
}

Si vous exécutez le code ci-dessus, vous verrez une fenêtre s'ouvrir:

Si vous ajoutez beaucoup de sauts de ligne, la barre de défilement apparaîtra automatiquement:


dimanche 7 janvier 2018

Installation de tomcat et java dans Cent OS 7

Mettez yum à jour avec epel:
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Installez java8:
$ sudo yum install java-1.8.0-openjdk.x86_64

Vérifiez si l'installation de java a réussi.
$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Créez un utilisateur et un groupe pour tomcat.
sudo groupadd tomcat
sudo mkdir /opt/tomcat
sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

Installez tomcat.
cd ~
wget http://www.us.apache.org/dist/tomcat/tomcat-9/v9.0.2/bin/apache-tomcat-9.0.2.tar.gz
sudo tar -zxvf apache-tomcat-9.0.2.tar.gz -C /opt/tomcat --strip-components=1

Changez les permissions de quelque fichiers. (Attention: ceci change les permissions de bin, lib etc, alors certains logiciels peuvent ne pas fonctionner après avoir fait ces commandes.)
cd /opt/tomcat
sudo chgrp -R tomcat conf
sudo chmod g+rwx conf
sudo chmod g+r conf/*
sudo chown -R tomcat logs/ temp/ webapps/ work/

sudo chgrp -R tomcat bin
sudo chgrp -R tomcat lib
sudo chmod g+rwx bin
sudo chmod g+r /bin/*

Créez un fichier systemd pour tomcat:
sudo vi /etc/systemd/system/tomcat.service

Écrivez ça dans ce fichier:
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

Et enregistrez le fichier en appuyant sur ":wq".

Installez haveged pour la sécurité.
sudo yum install haveged
sudo systemctl start haveged.service
sudo systemctl enable haveged.service

Demarrez tomcat:
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

Et vous pouvez accéder à tomcat depuis un navigateur: http://votre url:8080/
Si vous ne pouvez pas accéder, changez les règles du Firewall (pare-feu):
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

On va créer un utilisateur admin pour tomcat. Ouvrez "tomcat-users.xml" comme ça:
sudo vi /opt/tomcat/conf/tomcat-users.xml

Et ajoutez cette ligne entre "</tomcat-users ...>" et "</tomcat-users>" dans le fichier.
<user username="admin" password="admin" roles="manager-gui,admin-gui"/>

Redémarrez tomcat.
sudo systemctl restart tomcat.service

Accédez à tomcat depuis un navigateur: http://votre url:8080/




jeudi 4 janvier 2018

Comment utiliser Jenkins (pour windows)

Installation de Jenkins


D'abord, Téléchargez et installez Java8.

Et téléchargez Jenkins depuis ce site: https://jenkins-ci.org/
Et commencez l'installation.


Allez au répertoire où on a installé dans l'invite de commandes et démarrer jenkins:
cd "C:\Program Files (x86)\Jenkins"
java -jar jenkins.war

Maintenant allez à "http://localhost:8080" et tapez le mot de passe dans le navigateur:

 Le mot de passe est dans le fichier:
C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword

Et ceci va s'afficher, alors choisissez "Install suggested plugins":

Créez un compte de administrateur.
Et c'est fini... Cliquez sur "Start using Jenkins".




Créer un job


Cliquez sur "créer un nouveau job" ou "Nouveau Item" et créez un job.

On peut nommer le project comme l'on veut. Cliquez sur "Construire un projet free-style".


Et cliquez sur "OK".


L'affichage pour le réglage va s'afficher:



Défilez vers le bas et cliquez "Ajouter une étape au build" de "Build". Si vous utilisez Windows, cliquez sur "Exécuter une ligne de commande batch Windows". Si vous utilisez Mac ou Linux, cliquez sur "Exécuter un script shell":

Et ajoutez ce qui suit:
echo "Hello jenkins!"



Cliquez "Sauver".


Démarrer un job


Cliquez sur "Lancer un build" pour démarrer un job. Les résultats sont dans "Historiques de builds".

Cliquez sur un résultat dans "Historiques de builds". Et ceci va s'afficher:


Cliquez sur "Console Output" pour voir le résultat de job: