How to Install GITLAB on UbuntU 14

How to Install GITLAB on UbuntU 14

System Requirements

GitLab is a large and heavy application. To get the most of GitLab, the recommended hardware is as follows:

  • CPU: 2 cores to support up to 500 users.
  • Memory: 2 GB to support up to 500 users.

Prepare System for Deployment

Before beginning with the GitLab installation, make sure that your system’s package database is up to date and that all installed software is running the latest version.

  1. Update your system by issuing the following commands from your shell:
    1
    2
     sudo apt-get update
     sudo apt-get upgrade
    
  2. Also create a git user for GitLab:
    1
     sudo adduser --disabled-login --gecos 'GitLab' git
    

Install Package Dependencies

In this section you will install the development tools and the required packages for GitLab.

  1. Install the required packages to compile Ruby and native extensions to Ruby gems:
    1
     sudo apt-get install build-essential cmake zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate
    
  2. Install Git:
    1
     sudo apt-get install git
    
  3. In order to receive mail notifications, you need to install a mail server. Issue the following command to install Postfix mail server:
    1
     sudo apt-get install postfix
    

    Select Internet site and enter your hostname to complete the installation. If you need to set up a complete SMTP/IMAP/POP3 server, refer to the Email with Postfix, Dovecot, and MySQL guide.

Install Ruby

While GitLab is a Ruby on Rails application, using ruby version managers such as RVM and rbenv is not supported. For example, GitLab shell is called from OpenSSH and having a version manager can prevent pushing and pulling over SSH. Thus GitLab can only work with system-wide Ruby installation. In addition, GitLab requires Ruby 2.0 or higher while the default version on Ubuntu 14.04 is 1.9.3.

  1. Remove the old Ruby if present:
    1
     sudo apt-get remove ruby
    
  2. The current stable Ruby version as of this writing is 2.1.2. To install Ruby, download the source code and compile the package:
    1
    2
    3
    4
    5
    6
    7
     mkdir /tmp/ruby && cd /tmp/ruby
     wget http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz 
     tar xvzf ruby-2.1.2.tar.gz
     cd ruby-2.1.2
     ./configure --disable-install-rdoc --prefix=/usr/local
     make
     sudo make install
    
  3. Check if the installation succeed by checking the Ruby version:
    1
     ruby -v
    

Setup PostgreSQL Database for GitLab

GitLab supports both MySQL and PostgreSQL for the database backend, but the latter is recommended. GitLab requires PostgreSQL version 9.1 or higher since it needs to make use of extensions.

  1. Install PostgreSQL if you haven’t installed it:
    1
     sudo apt-get install postgresql postgresql-client libpq-dev
    
  2. Create new database and new user by issuing the following commands:
    1
    2
     sudo -u postgres createuser --createdb git
     sudo -u postgres createdb --owner=git gitlabhq_production
    
  3. Try connecting to the new database with the new user and display PostgreSQL version for testing:
    1
     sudo -u git -H psql -d gitlabhq_production -c "SELECT VERSION()"
    

    If everything is ok, you should see the PostgreSQL version displayed on the console like this:

    1
    2
    3
    4
                                                    version                                                
     ------------------------------------------------------------------------------------------------------
      PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-16ubuntu6) 4.8.2, 64-bit
     (1 row)
    

Install GitLab

In this section you will install GitLab and make some configuration changes.

  1. We will install GitLab into home directory of the user git. Change the current working directory:
    1
     cd /home/git
    
  2. Download the GitLab source:
    1
    2
     sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab
     cd gitlab
    

    The command above will download the 6-9-stable branch from the GitLab repository. Feel free to select other stable branches, but never install the master branch on a production server.

  3. Create the GitLab config file:
    1
     sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
    

    Open the file:

    1
     sudo nano config/gitlab.yml
    

    You need to change the value of host to the fully-qualified domain of your server. Also set the email_from and support_email to the email addresses intended for GitLab.

    /home/git/gitlab/config/gitlab.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    production: &base
      gitlab:
        host: git.example.com 
        port: 80
        https: false
        ...
        email_from: gitlab@example.com
        ...
        support_email: support@example.com
    

    If you specified a database name other than gitlabhq_production when creating the PostgreSQL database in the previous section, edit the config/database.yml file to match with your database name.

  4. Save and exit the file.
  5. Make sure GitLab can write to the log/ and tmp/ directories:
    1
    2
     sudo chown -R git {log,tmp}
     sudo chmod -R u+rwX {log,tmp,tmp/pids,tmp/sockets,public/uploads}
    
  6. Create directory for satellites:
    1
    2
     sudo -u git -H mkdir /home/git/gitlab-satellites
     sudo chmod u+rwx,g+rx,o-rwx /home/git/gitlab-satellites
    
  7. Create the Unicorn, Rack attack, and PostgreSQL configuration files:
    1
    2
    3
     sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
     sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
     sudo -u git cp config/database.yml.postgresql config/database.yml
    
  8. Make sure that config/database.yml is readable to git only:
    1
     sudo -u git -H chmod o-rwx config/database.yml
    
  9. Install the gems:
    1
    2
     sudo gem install bundler
     sudo -u git -H bundle install --deployment --without development test mysql aws
    
  10. Install GitLab shell, which is an SSH access and repository management software for GitLab:
    1
    sudo -u git -H bundle exec rake gitlab:shell:install[v1.9.4] REDIS_URL=redis://localhost:6379 RAILS_ENV=production
    
  11. Open the GitLab shell configuration file:
    1
    sudo nano /home/git/gitlab-shell/config.yml
    
  12. Check if the value of gitlab_url matches with the URL of your server.
    /home/git/gitlab-shell/config.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    user: git
    gitlab_url: http://git.example.com/
    http_settings:
      self_signed_cert: false
    repos_path: "/home/git/repositories/"
    auth_file: "/home/git/.ssh/authorized_keys"
    redis:
      bin: "/usr/bin/redis-cli"
      host: localhost
      port: 6379
      namespace: resque:gitlab
    log_level: INFO
    audit_usernames: false
    

    When you are satisfied with the configuration, save and exit the file.

  13. Initialize database and activate advanced features:
    1
    sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
    

    The command will display the following message

    1
    2
    3
    This will create the necessary database tables and seed the database.
    You will lose any previous data stored in the database.
    Do you want to continue (yes/no)? 
    

    Type yes and press Enter to continue.

  14. Install the init script and make GitLab start on boot:
    1
    2
    sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
    sudo update-rc.d gitlab defaults 21
    
  15. Set up logrotate:
    1
    sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
    
  16. Check application status:
    1
    sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
    

    Sample output

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    System information
    System:         Ubuntu 14.04
    Current User:   git
    Using RVM:      no
    Ruby Version:   2.1.2p95
    Gem Version:    2.2.2
    Bundler Version:1.6.3
    Rake Version:   10.3.1
    Sidekiq Version:2.17.0
    
    GitLab information
    Version:        6.9.2
    Revision:       e46b644
    Directory:      /home/git/gitlab
    DB Adapter:     postgresql
    URL:            http://git.example.com
    HTTP Clone URL:	http://git.example.com/some-project.git
    SSH Clone URL:	git@git.example.com:some-project.git
    Using LDAP:     no
    Using Omniauth: no
    
    GitLab Shell
    Version:        1.9.4
    Repositories:   /home/git/repositories/
    Hooks:          /home/git/gitlab-shell/hooks/
    Git:            /usr/bin/git    
    
  17. Compile assets:
    1
    sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
    
  18. Configure Git global settings for the git user:
    1
    2
    3
    sudo -u git -H git config --global user.name "GitLab"
    sudo -u git -H git config --global user.email "gitlab@example.com"
    sudo -u git -H git config --global core.autocrlf input
    

    Set the value for user.email according to what is set in config/gitlab.yml

  19. Start GitLab:
    1
    sudo service gitlab start
    

Set Up Nginx Virtual Host for GitLab

Nginx is the only supported web server for GitLab. In this section, you will create a new virtual host for GitLab and activate the site.

  1. Install Nginx if you haven’t installed it:
    1
     sudo apt-get install nginx
    
  2. Copy the sample site config:
    1
     sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
    
  3. Open the config file:
    1
     sudo nano /etc/nginx/sites-available/gitlab
    
  4. Modify the value for server_name to the fully-qualified domain name of your server:
    /etc/nginx/sites-available/gitlab
    1
    2
    3
    4
    listen 80;
    server_name git.example.com;
    server_tokens off; 
    root /home/git/gitlab/public;
    

    Save and exit the file.

  5. Deactivate the default virtual host
    1
     sudo rm /etc/nginx/sites-enabled/default
    
  6. Activate the site and restart Nginx to take effect
    1
    2
     sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
     sudo service nginx restart
    
  7. If Nginx failed to start with the following message
    1
    Restarting nginx: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
    

    Open /etc/nginx/nginx.conf and uncomment the following line

    1
    server_names_hash_bucket_size 64;
    

    Then restart Nginx.

Open GitLab on Your Browser

Double check the application status:

1
2
    cd /home/git/gitlab
    sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

If most of the items are green and some are purple (which is okay since you don’t have any git project yet), then you have successfully installing GitLab. Below are the sample output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    Checking Environment ...

    Git configured for git user? ... yes

    Checking Environment ... Finished

    Checking GitLab Shell ...

    GitLab Shell version >= 1.9.4 ? ... OK (1.9.4)
    Repo base directory exists? ... yes
    Repo base directory is a symlink? ... no
    Repo base owned by git:git? ... yes
    Repo base access is drwxrws---? ... yes
    Satellites access is drwxr-x---? ... yes
    update hook up-to-date? ... yes
    update hooks in repos are links: ... can't check, you have no projects
    Running /home/git/gitlab-shell/bin/check
    Check GitLab API access: OK
    Check directories and files: 
        /home/git/repositories/: OK
        /home/git/.ssh/authorized_keys: OK
    Test redis-cli executable: redis-cli 2.8.4
    Send ping to redis server: PONG
    gitlab-shell self-check successful

    Checking GitLab Shell ... Finished

    Checking Sidekiq ...

    Running? ... yes
    Number of Sidekiq processes ... 1

    Checking Sidekiq ... Finished

    Checking LDAP ...

    LDAP is disabled in config/gitlab.yml

    Checking LDAP ... Finished

    Checking GitLab ...

    Database config exists? ... yes
    Database is SQLite ... no
    All migrations up? ... yes
    Database contains orphaned UsersGroups? ... no
    GitLab config exists? ... yes
    GitLab config outdated? ... no
    Log directory writable? ... yes
    Tmp directory writable? ... yes
    Init script exists? ... yes
    Init script up-to-date? ... yes
    projects have namespace: ... can't check, you have no projects
    Projects have satellites? ... can't check, you have no projects
    Redis version >= 2.0.0? ... yes
    Your git bin path is "/usr/bin/git"
    Git version >= 1.7.10 ? ... yes (1.9.1)

    Checking GitLab ... Finished

Now you can open http://git.example.com on your browser. GitLab will show you the login page.

Reference
How to Install GITLAB on UbuntU 14
https://www.linode.com/docs/development/version-control/install-gitlab-on-ubuntu-14-04-trusty-tahr

GIT LAB Installation Methods
https://about.gitlab.com/installation/

GIT LAB Installation on Ubuntu
https://about.gitlab.com/installation/#ubuntu

 

How To Install Puppet -Master and Agent on CentOS 7

How To Install Puppet Master-Agent on CentOS 7

 

What is Puppet?
Puppet, from Puppet Labs, is a configuration management tool that helps system administrators automate the provisioning, configuration, and management of a server infrastructure. Planning ahead and using config management tools like Puppet can cut down on time spent repeating basic tasks, and help ensure that your configurations are consistent and accurate across your infrastructure. Once you get the hang of managing your servers with Puppet and other automation tools, you will have more free time that can be used to improve other aspects of your setup.
Puppet comes in two varieties, Puppet Enterprise and open source Puppet. It runs on most Linux distributions, various UNIX platforms, and Windows.

Puppet Enterprise Platform

 

Scope/Requirement?
How to install open source Puppet  in an agent/master infrastructure  on CentOS 7. In this setup, the Puppet master server—which runs the Puppet Server software—can be used to control all your other servers, or Puppet agent nodes. Note that we’ll be using the Puppet Server package, instead of Passenger or any other run time environment.

Prerequisites
1. Root or Superuser access level to to both Puppet Master and Agent servers
2. Cent OS 7 OS
3. Ports open and firewall disable- SELINUX
The Puppet master must be reachable on port 8140.

Systems and Environments

initial Puppet environment will consist of:

  • 1 x Puppet Enterprise Puppet Master with Hiera-based configuration
  • 1 x Puppet Enterprise console server with Cloud Provisioner
  • 1 x PuppetDB server
  • A local Git repository for Puppet configuration
  • A VMware platform (VMware vSphere >= 6.X and VMware vCenter)

Memory, CPU and Disk Space

Puppet Clients
Windows 10
Windows Server 2016
Windows Server 2012 R2
Centos 7 Server
Open SUSE 12 Server
DNS will be managed by AD

Prerequisites Components

Install NTP

Because it acts as a certificate authority for agent nodes, the Puppet master server must maintain accurate system time to avoid potential problems when it issues agent certificates–certificates can appear to be expired if there are time discrepancies. We will use Network Time Protocol (NTP) for this purpose.

First, take a look at the available timezones with this command:

  • timedatectl list-timezones

This will give you a list of the timezones available for your server. When you find the region/timezone setting that is correct for your server, set it with this command (substitute your preferred region and timezone):

  • sudo timedatectl set-timezone UTC

Install NTP via yum with this command:

  • sudo yum -y install ntp

Do a one-time time synchronization using the ntpdate command:

  • sudo ntpdate pool.ntp.org

It is common practice to update the NTP configuration to use “pools zones” that are geographically closer to your NTP server. In a web browser, go to the NTP Pool Project and look up a pool zone that is geographically close the datacenter that you are using. We will use the United States pool (http://www.pool.ntp.org/zone/us) in our example, because our servers are located in a New York datacenter.

Open ntp.conf for editing:

  • sudo vi /etc/ntp.conf

Add the time servers from the NTP Pool Project page to the top of the file (replace these with the servers of your choice):

/etc/ntp.conf excerpt
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

Save and exit.

Start NTP to add the new time servers:

  • sudo systemctl restart ntpd

Lastly, enable the NTP daemon:

  • sudo systemctl enable ntpd

Now that our server is keeping accurate time, let’s install the Puppet Server software.

High-Level Implementation Tasks

Also based on the answers to our questions above, the high-level implementation tasks will be as follows:

  1. Install the Puppet Enterprise platform.
  2. Create a basic Hiera-based configuration.
  3. Configure and test Cloud Provisioner.
  4. Use what we have so far to try and create a realistic environment.
  5. Create a Git repository for Puppet configuration.
  6. Devise a plan for bringing existing hosts under Puppet control.

Note how these tasks correspond roughly to the chapters in this book? No coincidence there! We’ll have a quick overview of all these tasks, before giving each one its own dedicated chapter…

1. PE Platform Installation

We can split this into a number of sub-tasks:

  • Identify or create three new CentOS 6 VMs.
  • Install Puppet Master, Console and PuppetDB.
  • Install Cloud Provisioner on the Console server.
  • Document the installation.
Hostname OS CPU Count RAM Disk Capacity
puppetmaster.mcp.local 64-bit CentOS 7 8 10 GB 80GB
puppetconsole.mcp.local 64-bit CentOS 7 2 6GB 80GB
puppetdb.mcp.local 64-bit CentOS 7 2 8GB 80GB

Installation Sequence

The installation should be performed in this order:

Install Step Host Name Puppet Enterprise Role
1 puppetmaster.mcp.local Master Role
2 puppetdb.mcp.local Database Support Role (PuppetDB)
3 puppetconsole.mcp.local Console Role
4 puppetconsole.mcp(optional) Cloud Provisioner Role(optional)

The Agent Role should also be installed on all hosts.

Tarball Download

We’re running on CentOS 7, so we need to download the tarball for RHEL-based systems.

PE Version OS Version Tarball Location File Size
3.0.1 x86_64 EL (RHEL, CentOS, Scientific Linux, Oracle Linux) 6 https://pm.puppetlabs.com/cgi-bin/download.cgi?ver=latest&dist=el&arch=x86_64&rel=7 236MB

Note: If you prefer to download directly using curl, do this:

curl -L -o pe-latest.tgz 'https://pm.puppetlabs.com/cgi-bin/download.cgi?ver=latest&dist=el&arch=x86_64&rel=6'

On each host, we unpack the tarball into /tmp, cd into the unpacked directory and run the installer script as root:

$ sudo ./puppet-enterprise-installer

The installer will ask which roles should be installed. Any answers given during installation will be recorded in the answer file here: /etc/puppetlabs/installer/answers.install

To run the installation again using any of the answers below, save them to a file and run the installer again with the -A option. If any answers are missing, the installer will prompt for input.

$ sudo ./puppet-enterprise-installer -A <ANSWER FILE>

Installing the Master

Installation answerfile for the Non-Prod Puppet Master:

q_all_in_one_install=n
q_database_install=n
q_install=y
q_pe_database=n
q_puppet_cloud_install=n
q_puppet_enterpriseconsole_install=n
q_puppet_symlinks_install=y
q_puppetagent_certname=puppetmaster-mcp.local
q_puppetagent_install=y
q_puppetagent_server=puppetmaster.mcp.local
q_puppetdb_hostname=puppetdb-mcp.local
q_puppetdb_install=n
q_puppetdb_port=8081
q_puppetmaster_certname=puppetmaster-mcp.local
q_puppetmaster_dnsaltnames=puppetmaster,puppetmaster.mcp.local
q_puppetmaster_enterpriseconsole_hostname=puppetconsole-mcp.local
q_puppetmaster_enterpriseconsole_port=443
q_puppetmaster_install=y
q_run_updtvpkg=n
q_vendor_packages_install=y

Installation complete:

------------------------------------------------------------------------
STEP 4: DONE
Thanks for installing Puppet Enterprise!

Puppet Enterprise has been installed to "/opt/puppet," and its
configuration files are located in "/etc/puppetlabs".

## Answers from this session saved to
'/tmp/puppet-enterprise-3.0.1-el-6-x86_64/answers.lastrun.puppetmaster.mcp.local'
========================================================================

If you have a firewall running, please ensure the following TCP ports
are open: 8140, 61613

If you have a firewall running, please ensure outbound connections to
are allowed via the following TCP ports: 443, 8081

NOTICE: This system has 3832 MB of memory, which is below the 4 GB we
recommend for the puppet master role. Although this node will be a
fully functional puppet master, you may experience poor performance
with large numbers of nodes. You can improve the puppet master's
performance by increasing its memory.

========================================================================

Installing PuppetDB

Installation answerfile for the Non-Prod PuppetDB:

q_all_in_one_install=n
q_database_host=puppetdb.mcp.local
q_database_install=y
q_database_port=5432
#q_database_root_password=REDACTED
q_database_root_user=pe-postgres
q_fail_on_unsuccessful_master_lookup=y
q_install=y
q_pe_database=y
q_puppet_cloud_install=n
q_puppet_enterpriseconsole_auth_database_name=console_auth
#q_puppet_enterpriseconsole_auth_database_password=REDACTED
q_puppet_enterpriseconsole_auth_database_user=console_auth
q_puppet_enterpriseconsole_database_name=console
#q_puppet_enterpriseconsole_database_password=REDACTED
q_puppet_enterpriseconsole_database_user=console
q_puppet_enterpriseconsole_install=n
q_puppet_symlinks_install=y
q_puppetagent_certname=puppetdb.mcp.local
q_puppetagent_install=y
q_puppetagent_server=puppetmaster.mcp.local
q_puppetdb_database_name=pe-puppetdb
#q_puppetdb_database_password=REDACTED
q_puppetdb_database_user=pe-puppetdb
q_puppetdb_hostname=puppetdb.mcp.local
q_puppetdb_install=y
q_puppetdb_port=8081
q_puppetmaster_certname=puppetmaster.mcp.local
q_puppetmaster_install=n
q_run_updtvpkg=n
q_vendor_packages_install=n

Installation complete:

------------------------------------------------------------------------
STEP 4: DONE
Thanks for installing Puppet Enterprise!
Puppet Enterprise has been installed to "/opt/puppet," and its
configuration files are located in "/etc/puppetlabs".

## Answers from this session saved to
'/tmp/puppet-enterprise-3.0.1-el-6-x86_64/answers.lastrun.puppetdb.mcp.local'

## In addition, auto-generated database users and passwords have been saved to
"/etc/puppetlabs/installer/database_info.install"

!!! WARNING: Do not discard these files! All auto-generated database users
and passwords have been saved in them. You will need this information
to configure the console role during installation.

========================================================================
If you have a firewall running, please ensure the following TCP ports
are open: 5432, 8081

If you have a firewall running, please ensure outbound connections to
are allowed via the following TCP ports: 8140, 61613

NOTICE: This system has 3832 MB of memory, which is below the 4 GB we
recommend for the PuppetDB role. Although this node will be a fully
functional PuppetDB, you may experience poor performance with large
numbers of nodes. You can improve PuppetDB's performance by increasing
its memory.

Use this guideline to determine the amount of memory required for the
number of nodes installed.

NODES | MEMORY
------------------------------
1 - 100 | 192 - 512 MB
100 - 500 | 512 - 1024 MB
500 - 1000 | 1 - 2 GB
1000 - 2000 | 2 - 4 GB
> 2000 | 4 GB or greater
========================================================================

Installing PE Console and Cloud Provisioner

Installation answerfile for Console and Cloud Provisioner:

q_all_in_one_install=n
q_database_host=puppetdb.mcp.local
q_database_install=n
q_database_port=5432
q_fail_on_unsuccessful_master_lookup=y
q_install=y
q_pe_database=n
q_puppet_cloud_install=y
q_puppet_enterpriseconsole_auth_database_name=console_auth
#q_puppet_enterpriseconsole_auth_database_password=REDACTED
q_puppet_enterpriseconsole_auth_database_user=console_auth
#q_puppet_enterpriseconsole_auth_password=REDACTED
q_puppet_enterpriseconsole_auth_user_email=richard.pham@itsysintegration.net
q_puppet_enterpriseconsole_database_name=console
#q_puppet_enterpriseconsole_database_password=REDACTED
q_puppet_enterpriseconsole_database_user=console
q_puppet_enterpriseconsole_httpd_port=443
q_puppet_enterpriseconsole_install=y
q_puppet_enterpriseconsole_master_hostname=puppetmaster.mcp.local
q_puppet_enterpriseconsole_smtp_host= smtp.1and1.com
#q_puppet_enterpriseconsole_smtp_password=REDACTED
q_puppet_enterpriseconsole_smtp_port=25
q_puppet_enterpriseconsole_smtp_use_tls=n
q_puppet_enterpriseconsole_smtp_user_auth=n
q_puppet_enterpriseconsole_smtp_username=
q_puppet_symlinks_install=y
q_puppetagent_certname=puppetconsole.mcp.local
q_puppetagent_install=y
q_puppetagent_server=puppetmaster.mcp.local
q_puppetca_install=n
q_puppetdb_database_name=pe-puppetdb
#q_puppetdb_database_password=REDACTED
q_puppetdb_database_user=pe-puppetdb
q_puppetdb_hostname=puppetdb.mcp.local
q_puppetdb_install=n
q_puppetdb_port=8081
q_puppetmaster_enterpriseconsole_hostname=localhost
q_puppetmaster_install=n
q_run_updtvpkg=n
q_vendor_packages_install=y

Installation complete:

------------------------------------------------------------------------
STEP 4: DONE
Thanks for installing Puppet Enterprise!

Puppet Enterprise has been installed to "/opt/puppet," and its
configuration files are located in "/etc/puppetlabs".

## Answers from this session saved to
'/tmp/puppet-enterprise-3.0.1-el-6-x86_64/answers.lastrun.puppetconsole.mcp.local'
========================================================================
The console can be reached at the following URI:
* https://puppetconsole.mcp.local

If you have a firewall running, please ensure the following TCP ports
are open: 443

If you have a firewall running, please ensure outbound connections to
are allowed via the following TCP ports: 8140, 61613, 5432

Reference
Puppet Enterprise Planning Architecture
http://puppetlunch.com/puppet/planning.html

Puppet Enterprise Installation
Puppet Enterprise Installation Overview

Installing System Center Operations Manager (SCOM) 2016 on Windows Server 2016

Step-by-Step – Installing System Center Operations Manager (SCOM) 2016 on Windows Server 2016 with SQL 2016

imageImage result for ms sql server 2016

Scope
Installing System Center Operations Manager 2016 on Windows 2016 and SQL 2016.

Prerequisite Requirments
Examples

Hypervisor Environment
ESX 6.0

SCOM Management Server:

Windows Server 2016
4 vCPU (2.00GHz)
12 GB memory
100GB Disk space
1GB vNIC

SQL Server:
OS Version:
Server 2016
SQL Server 2016
4 vCPU (2.00GHz)
24 GB memory
300GB Disk space
1GB vNIC

 

Domain\Account Description Local Admin on…
domain\SCOM_AA SCOM Action Account SCOM & SQL
domain\SCOM_DA SCOM Data Access/SDK Account SCOM & SQL
domain\SCOM_SQL_READ SCOM SQL Reader SQL
domain\SCOM_SQL_WRITE SCOM SQL Writer SQL
domain\SCOM_Admins SCOM Administrators Group SCOM
domain\SQL_SA SQL Service Account SQL
domain\SQL_SSRS SQL Service Reporting Services Account SCOM

*Can take advantage of the  SCOM Service Accounts Powershell sample-
https://gallery.technet.microsoft.com/SCOM-Service-Accounts-31af7781

Required Window Server IIS Feature and Role Components
1. PowerShell command I ran to install the necessary IIS features/roles:
Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-WebServer, Web-Common-Http, Web-Default-Doc, Web-Dir-Browsing, Web-Http-Errors, Web-Static-Content, Web-Health, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Performance, Web-Stat-Compression, Web-Security, Web-Filtering, Web-Windows-Auth, Web-App-Dev, Web-Net-Ext45, Web-Asp-Net45, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Tools, Web-Mgmt-Console, Web-Mgmt-Compat, Web-Metabase, NET-Framework-45-Features, NET-Framework-45-Core, NET-Framework-45-ASPNET, NET-WCF-Services45, NET-WCF-HTTP-Activation45, NET-WCF-TCP-PortSharing45, WAS, WAS-Process-Model, WAS-Config-APIs -restart

2. Register ASP.Net.

You will need to apply the following using Command Prompt (as Administrator)).
“cd %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\“
aspnet_regiis.exe -r
IISRESET
Reboot your server…
Prerequisites check all of the Prerequisites if above items are installed and added:

5

Prerequisites with happy results

7

8

Provide a meaningful Management Group Name 

9

SQL Server will be where your SCOM SQL instance(s) were installed. For me, I have built two instances on my SQL2016 server (SCOM_OPSMGR & SCOM_DW).

10

11

12

13

14

15

16

17Set Microsft Update “Off”, and manually updating your SCOM infrastructure.

18

Click on Install to begin Installation.

19

20

21

22

 

Reference
SCOM Step-by-Step – Installing System Center Operations Manager (SCOM) 2016 on Windows Server 2016 with SQL 2016
https://scomandothergeekystuff.com/2016/10/13/step-by-step-installing-system-center-operations-manager-scom-2016-on-windows-server-2016-with-sql-2016/

OpsMgr 2016 – QuickStart Deployment Guide
https://blogs.technet.microsoft.com/kevinholman/2016/10/22/opsmgr-2016-quickstart-deployment-guide/

Step By Step Install SCOM 2016 Reporting On Windows 2016
https://waleedmostafa.wordpress.com/2016/12/21/step-by-step-install-scom-2016-reporting-on-windows-2016/

Installing System Center Operations Manager (SCOM) 2016 
http://www.systemcentercentral.com/installing-system-center-operations-manager-scom-2016-step-step/

Install Tomcat Server on CentOS/RHEL 7/6/5 on Linux OS

Install Tomcat Server on CentOS/RHEL 7/6/5 on Linux OS

Related image

Scope: Install Tomcat 7 on CentOS/RHEL servers. We are using CentOS 7 and installing Apache Tomcat 7.0.75. To read more about this release read Tomcat Release Notes.

Step 1: Check Java Version

JAVA is the first requirement for Tomcat 7 installation. Make sure you have JAVA SE 6 or Later version installed in your system. Use the following command to check if you have java installed already on your system.

# java -version

java version “1.8.0_121″
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
If you do not have java installed, Use any article Install Java 7 or Install Java 8 in RHEL based systems.

Step 2: Download Tomcat 7 Archive

Download Apache Tomcat archive file from Apache tomcat official download page. You can use below wget command to download it.

# cd /tmp
# wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.75/bin/apache-tomcat-7.0.75.tar.gz
After competed download extract archive file in /tmp directory and move to proper location as per your need. We are placing this under /usr/local directory.

# tar xzf apache-tomcat-7.0.75.tar.gz
# mv apache-tomcat-7.0.75 /usr/local/tomcat7
Step 3: Starting Tomcat

Tomcat is very easy to use, There are no need to compile its source. You simply extract the archive and start the tomcat server. Tomcat by default start on port 8080, Make sure no other services are running on same port using ‘telnet localhost 8080’.

# cd /usr/local/tomcat7

# ./bin/startup.sh
Sample Output

Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /opt/jdk1.8.0_72
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.
Step 4: Access Tomcat in Browser

Tomcat server works on port 8080 default. To access Tomcat on the web browser by connecting your server on port 8080.

http://svr1.tecadmin.net:8080
Step 5: Setup User Accounts

Finally we need to create user accounts to secure and access admin/manager pages. Edit conf/tomcat-users.xml file in your editor and paste inside <tomcat-users> </tomcat-users> tags.

<!– user manager can access only manager section –>
<role rolename=”manager-gui” />
<user username=”manager” password=”_SECRET_PASSWORD_” roles=”manager-gui” />

<!– user admin can access manager and admin section both –>
<role rolename=”admin-gui” />
<user username=”admin” password=”_SECRET_PASSWORD_” roles=”manager-gui,admin-gui” />
Step 6: Stop Tomcat

Finally, if you feel that there are no need of Tomcat in your system, You can simply stop it using below command from tomcat home directory.

# ./bin/shutdown.sh
I hope above steps will help you to set up Tomcat 7 on your server. Read our next article to Install Tomcat 7 on Ubuntu. Tomcat 8 stable release is also available to download. Read our next article to Install Tomcat 8 in Linux

References

Apache Tomcat How To Install.
https://www.usemoslinux.net/index.php/como-instalar-apache-tomcat-8-en-gnulinux/

How To Install Tomcat  7.
https://tecadmin.net/steps-to-install-tomcat-server-on-centos-rhel/

How To Install Tomcat Apache 8
https://www.vultr.com/docs/how-to-install-apache-tomcat-8-on-centos-7

How To Install and Configure Tomcat Apache on RHEL
https://www.linux.com/blog/how-install-tomcat-7-server-centos-redhat

Vidoe Tutorial
Aptache Tomcat 7 Instructinoal Video 

https://linuxacademy.com/linux/training/course/name/apache-tomcat-7-application-server

Install Apache Httpd service on Cent OS 7.

Basic Account Administrations-How To-Linux OS

Add existing user called example user <Uyxx> to the wheel group

By default, all users on a Linux distribution can use the su (switch user) command to become another user during a login session. If no username is given, su defaults to becoming the super user. While on other UNIX systems, one must be in the wheel group in order to access the su command.

This tutorial will show you how to restrict the use of su command on Linux so that only users in the wheel group have access to it.

The wheel group is a special user group on Unix-like systems to restrict access to su command. The term wheel comes from the archiaic slang phrase “big wheel” which means an important and influential person.
Edit /etc/pam.d/su config file:

sudo vi /etc/pam.d/su
add the following line:

auth required /lib/security/pam_wheel.so use_uid
or

auth required pam_wheel.so use_uid
Save and close the file.

Now when a user that is not in the wheel group try to use su command, he/she will get a permission denied error, even if the password is typed correctly.

If you want to add a user to the wheel group, use the following command:

sudo usermod -G wheel username
Use the id command to check if the user is in the wheel group

id username

The syntax is:

pw group mod {GROUP-NAME-HERE} -m {USERNAME-HERE}
pw group mod wheel -m Uyxx
If the user named Uyxx already exists add her to the wheel group.

Add new user called sai while creating a new account

The syntax is:

pw user add {USERNAME-HERE} -G {GROUP-NAME-HERE}
pw user add sai -G wheel
The above command creates the sai primary group automatically, and add a user in the wheel group when her account is first created on a FreeBSD unix operating systems.

How do I verify new group membership on a FreeBSD?

The syntax is:

pw groupshow {GROUP-NAME-HERE}
pw groupshow wheel
pw groupshow sai
pw groupshow vivek
## Determine Group Membership Of sai and vivek Users ##
id sai
id vivek

How To Set up New SUDO User-Linux OS 

The sudo command provides a mechanism for granting administrator privileges, ordinarily only available to the root user, to normal users. This guide will show you the easiest way to create a new user with sudo access on CentOS, without having to modify your server’s sudoers file. If you want to configure sudo for an existing user, simply skip to step 3.

Steps to Create a New Sudo User
Log in to your server as the root user.

ssh root@server_ip_address
Use the adduser command to add a new user to your system.

Be sure to replace username with the user that you want to create.

adduser username
Use the passwd command to update the new user’s password.

passwd username
Set and confirm the new user’s password at the prompt. A strong password is highly recommended!

Set password prompts:
Changing password for user username.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Use the usermod command to add the user to the wheel group.

usermod -aG wheel username
By default, on CentOS, members of the wheel group have sudo privileges.

Test sudo access on new user account

Use the su command to switch to the new user account.

su – username
As the new user, verify that you can use sudo by prepending “sudo” to the command that you want to run with superuser privileges.

sudo command_to_run
For example, you can list the contents of the /root directory, which is normally only accessible to the root user.

sudo ls -la /root
The first time you use sudo in a session, you will be prompted for the password of the user account. Enter the password to proceed.

Output:
[sudo] password for username:
If your user is in the proper group and you entered the password correctly, the command that you issued with sudo should run with root privileges.

Image result for ulimit linux

How to set U Limite

How to set ulimit values

How to Check the Ulimit

process IDs (PID) of the specific user you can get the limits for each process with:

cat /proc/<PID>/limits

You can get the number of opened files for each PID with:

ls -l /proc/<PID>/fd | wc -l

And then just compare the value of Max open files with the number of open file descriptors from the second command to get a percentage.

 Environment
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7

Issue

  • How to set ulimit values

Resolution

  • Settings in /etc/security/limits.conf take the following form:
    # vi /etc/security/limits.conf
    #<domain>        <type>  <item>  <value>
    
    *               -       core             <value>
    *               -       data             <value>
    *               -       priority         <value>
    *               -       fsize            <value>
    *               soft    sigpending       <value> eg:57344
    *               hard    sigpending       <value> eg:57444
    *               -       memlock          <value>
    *               -       nofile           <value> eg:1024
    *               -       msgqueue         <value> eg:819200
    *               -       locks            <value>
    *               soft    core             <value>
    *               hard    nofile           <value>
    @<group>        hard    nproc            <value>
    <user>          soft    nproc            <value>
    %<group>        hard    nproc            <value>
    <user>          hard    nproc            <value>
    @<group>        -       maxlogins        <value>
    <user>          hard    cpu              <value>
    <user>          soft    cpu              <value>
    <user>          hard    locks            <value>
    
    • <domain> can be:
      • an user name
      • a group name, with @group syntax
      • the wildcard *, for default entry
      • the wildcard %, can be also used with %group syntax, for maxlogin limit
    • <type> can have the two values:
      • “soft” for enforcing the soft limits
      • “hard” for enforcing hard limits
    • <item> can be one of the following:
      • core – limits the core file size (KB)
      • data – max data size (KB)
      • fsize – maximum filesize (KB)
      • memlock – max locked-in-memory address space (KB)
      • nofile – max number of open files
      • rss – max resident set size (KB)
      • stack – max stack size (KB)
      • cpu – max CPU time (MIN)
      • nproc – max number of processes
      • as – address space limit (KB)
      • maxlogins – max number of logins for this user
      • maxsyslogins – max number of logins on the system
      • priority – the priority to run user process with
      • locks – max number of file locks the user can hold
      • sigpending – max number of pending signals
      • msgqueue – max memory used by POSIX message queues (bytes)
      • nice – max nice priority allowed to raise to values: [-20, 19]
      • rtprio – max realtime priority
  • Exit and re-login from the terminal for the change to take effect.
  • More details can be found from below command:
# man limits.conf

Diagnostic Steps

  • To improve performance, we can safely set the limit of processes for the super-user root to be unlimited. Edit the .bashrc file vi /root/.bashrc and add the following line:
# vi /root/.bashrc
ulimit -u unlimited
  • Exit and re-login from the terminal for the change to take effect.
  • Can also run ulimit -u unlimited at the command prompt instead of adding it to the /root/.bashrc file.

Detail Information

o display all of your current settings you can issue the command: “ulimit -a

 


john@john-desktop:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 19868
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 19868
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

To display individual parameters you must specify the appropriate flag. “-c” would be for “core file size”: ulimit -c

To display the “Max user Processes”, you could issue the command: ulimit -u

 


john@john-desktop:~$ ulimit -c
0
john@john-desktop:~$ ulimit -u
19868

 

/etc/security/limits.conf

 

As we mentioned earlier, “/etc/security/limits.conf” is the location for the file that contains user limit settings. Below is an example of a “/etc/security/limits.conf” file taken from an “Ubuntu 12.04 LTS” system:

 


john@john-desktop:~$ cat /etc/security/limits.conf
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - an user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#        - NOTE: group and wildcard limits are not applied to root.
#          To apply a limit to the root user, <domain> must be
#          the literal username root.
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open files
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#        - chroot - change root to directory (Debian-specific)
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

# End of file

 

As you can see from the above, limits are either defined as being “soft” or “hard“. The hard limit is set by the “root” user or a user with the appropriate escalated privileges. This limit can not be exceeded. The soft limit is also set by the “root” user, however, this limit can be overridden by a user using the “ulimit” command.

As an example, imagine as the system administrator you have defined a hard limit of 100 for the “Max user Processes”. This would mean that the user can not go above 100 processes. You might then set a soft limit of 50 for “Max user Processes”. This soft value would stop the user from going over 50 processes. However, as this is only a soft limit, the user could use the ulimit command to increase the number of processes up to the hard limit. This new assigned value would then last for the duration of that particular shell. To raise this value you would issue ulimit -u 75. This would raise my max limit now to “75”. This limit is only for the current shell!

 

Reference
Create New Sudo User Centos
https://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-centos-quickstart 

Add User to the Wheel Group
https://www.linuxbabe.com/linux-server/linux-security-control-access-to-the-su-command

How to increase “U Limit” Setting on RHEL
https://access.redhat.com/solutions/61334

Linux Ulimit
http://landoflinux.com/linux_ulimit_command.html

How To Extend a Logical Volume On Linux OS-Virtualize Environment.

To extend the logical volume on Linux OS

Purpose/Scope
This article provides steps for extending the root partition residing in a logical volume created with Logical Volume Manager (LVM) in a virtual machine running Red Hat/CentOS.

Caution: Always take a complete backup of the virtual machine prior to making these changes.
1.Power off the virtual machine.


a. Click Edit the virtual machine settings and extend the virtual disk size.

i.e existing size is 75 G space allocated.

b. Increase the size of the disk volume up 200G.

i.e Increase the size of the drive volume to 200G.
c. Power on the virtual machine update Hard Drive Increase at VMDK level(VMware)

d. Log into Linux OS as Root and Open Terminal Shell Window-

 

 

*Will be using PVS, VGS and LVS commands.

e. Identify the device name, which is by default /dev/sda, and confirm the new size by running the command:

# fdisk -l

fdisk -l result:

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors (200G allocate on step b)
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b48a5
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   157286399    78130176   8e  Linux LVM
Disk /dev/mapper/centos-root: 52.3 GB, 52269416448 bytes, 102088704 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-home: 25.5 GB, 25518145536 bytes, 49840128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

f.Create a new primary partition:
Run the command:

1. # fdisk /dev/sda

By default, there are 2: sda1 and sda2. 2. Press n to create a new primary partition. 3. Press p for primary. 4. Press 3 for the partition number, depending on the output of the partition table print.

5. Press 3 for the partition number, depending on the output of the partition table print.
6. Press Enter two times.

 


7. Press t to change the system’s partition ID.
8. Press 3 to select the newly creation partition.
  

9.Type 8e to change the Hex Code of the partition for Linux LVM.


10.  Press “w” to write the changes to the partition table.

*Save change by press w to complete the above steps- This required.

g.Restart the virtual machine.
Run this command to verify that the changes were saved to the partition table and that the new partition has an 8e type:

11..# fdisk -l

h.Run this command to convert the new partition to a physical volume:

Note: The number for the sda can change depending on system setup. Use the sda number that was created in step f.

# pvcreate /dev/sda3

i. Run this command to extend the physical volume:

# vgextend centos /dev/root

Note: To determine which volume group to extend, use the command vgdisplay.

j.Run this command to verify how many physical extents are available to the Volume Group:

1# vgdisplay centos| grep “Free”

2..Run the following command to extend the Logical Volume:

3.# lvextend -L+#G /dev/centos/root

 

Where # is the number of Free space in GB available as per the previous command. Use the full number output from Step including any decimals.

Note: To determine which logical volume to extend, use the command lvdisplay.

4.Run the following command to expand the ext3 filesystem online, inside of the Logical Volume:

#xfs_growfs /dev/centos/root

Notes:
Use resize2fs instead of ext2online if it is not a Red Hat virtual machine.
By default, Red Hat and CentOS 7 use the XFS file system you can grow the file system by running the xfs_growfs command.

 

5.Run the following command to verify that the / filesystem has the new space available:

# df -h /


Reference:
Extending a logical Volume in a virtual machine running RHEL and Centos OS
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006371

How to Increase the size of a Linux LVM by expanding the virtual machine disk
https://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-expanding-the-virtual-machine-disk/

How to extend  and reduce LVM on Linux 
https://www.tecmint.com/extend-and-reduce-lvms-in-linux/

Setup Flexible Disk Storage with Logical Volume Managment (LVM) in Linux
https://www.tecmint.com/create-lvm-storage-in-linux/

Increase virtual disk on Vmware Vsphere
https://kb.vmware.com/selfservice/microsites/microsite.do?cmd=displayKC&docType=kc&externalId=1004047&sliceId=1&docTypeID=DT_KB_1_1

RHEL Logical Volume Management 
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/

Extend Disk Space-LVM How To Video
https://www.youtube.com/watch?v=d0Vj7mgJlxM

VMware vRealize Operation 6.5 Installation and Configuration Guide

VMware vRealize Operation (VROPS) 6.5 Installation and Configuration Guide 

VROPS Initial Setup Video
 

vROPS OVA Install Flowchart–

In this section we will be covering  VROPS Installation and Configuration.

I. Requirements
minimum hardware specification 
4 vCPU
16 GB RAM
4 GB of Free Space *Depending on your organization data collection

Please visit Vmware KB for VROPS 6.5 sizing guidelines.

vROPS Standard Specs

II. Download and Registred vRops

Go to VMware vRealize site and download a 6.5 trial version of vROps.

You will require a VMware account to do this and agree to any licensing.
Download the OVA file for vROps to your local computer.


Step 1. Log into the vCenter and go file and Select —>File—>Deploy OVF Template

vrops deployment step 1

Step 2: Select the OVA file (vRealize-Operations-Appliance-6.5.0.5097674) Click Next


Step 3: vRealize version and the size on disk will be displayed. Click Next

Step 4: Accept the license form VMware and click Next

*scroll down and read the EULA-

Step 5:

Enter a name for the vROps appliance or keep default – vRealize Operations Manager Applicance

Step 6:

You can select different size configurations from Very Small to X-Large depending on the number of VMs that need to be monitored and data collection.   Remote Collection Standard/Large(cluster) Extra small/Large

A remote collector node is an additional cluster node that allows
vRealize Operations Manager to gather more objects into its inventory for monitoring. Unlike data nodes, remote collector nodes only include the collector role of
vRealize Operations Manager, without storing data or processing any analytics functions.

A remote collector node is usually deployed to navigate firewalls, reduce bandwidth across data centers, connect to remote data sources, or reduce the load on the vRealize Operations Manager analytics cluster.

You must have at least a master node before adding remote collector nodes.

 *in this installation step will choice small option.

Step 7: Select the required Storage   Click Next to continue.

 

Step 8: Disk Format

Select default  Disk Format. and click Next.

Step 10:Enter the networking details for the vROps appliance and click Next

 

Step 11:Confirm the settings for the appliance and click Finish to complete the deployment


START UP:

Step 12: Open a console into the newly deployed appliance. You will see the vmware scren appear as the appliance writes the new configs.

Once the appliance has completed the installation you will see a similar screen to the below. Next you need to launch the web console on the IP address provided earlier as part of the deployment to configure the start-up configurations.

 

Step 13:
Open a web browser and if prompted to accept https site settings click through the prompts to continue. You will then be taken to a Get Started screen. If this is the first appliance with the vROps farm click New Installation, otherwise you can choose to expand a current vROps system.

Installation Options
*Express Installation.
*New Installation.
*Expand an Existing Installation

Step 14: Click Next on the Getting Started initial setup for a new cluster.

Step 15: Enter a password for the admin user and click Next

Step 16:  Here you can choice  CA signed certificate or even a third-party certificate or just use the defaults. As this is an evaluation environment I’ve selected the default certificate. Click Next.

Step 17: Enter a cluster name and also select which NTP server you want to synchronize against.



Step 18: Click Finish to finalize the initial setup.

Step 19:You will be taken to a newly designed configuration screen which shows the current cluster status. Click on Start vRealize Operations Manager to allow vRealize to come online. You can see from the State that vROps is currently Powered Off and Offline.

Step 20:

Once vROps begins the start up process a notice is received to ensure there are enough nodes in the cluster to handle the required workload. Click Yes to continue.

Step 21:

Once vROps is setup and started you will notice the state will change.

Step 22: Enter the vROps IP address or DNS name into a browser and you will receive a log in prompt.



LOG IN:
Step 23: Once you log in you will get prompted for some more configuration settings. Select New Environment if this is a new environment or you can import data from a current vCOPS environment. Click Next.



Step 24: Accept the license and click Next

tep 25: Enter a license key if you have one or just continue with a Product Evaluation and click Next.

Step 26: Click Finish to complete the login.

 

VROPS 6.5 Installation 
http://pubs.vmware.com/vrealizeoperationsmanager-65/topic/com.vmware.vcom.core.doc/GUID-A601D15B-80CD-43D2-B7A2-42973F732B8A.html

 

System Center 2016 Installation Guide

SCCM 2016 Configuration Installation Guide Phases
Image result
Microsoft announced the release of System Center Configuration Manager (SCCM) 1602, which is the latest update to its device management product. The “1602” part of the update’s name refers to its year and month release time (as in “2016 February”), but Microsoft announced its arrival today in March 11, 2016
Phase 1  Design Recommendation and Installation Prerequisites
(coming soon)

Phase 2 | SQL Installation and Configuration
Phase 3 | SCCM 2016 Installation
Phase 4 | Application Catalog Web Service Point Installation
Phase 5 | Application Catalog Website Point Installation
Phase 6 | Asset Intelligence Synchronization Point Installation
Phase 7 | Certificate Registration Point Installation
Phase 8 | Distribution Point Installation
Phase 9 | Endpoint Protection Point Installation
Phase 10 | Enrollment Point Installation
Phase 11 | Enrollment Proxy Point Installation
Phase 12 | Fallback Status Point Installation
Phase 13 | Management Point Installation
Phase 14 | Reporting Services Point Installation
Phase 15 | Software Update Point Installation
Phase 16 | State Migration Point Installation
Phase 17 | System Health Validator Point Installation
Phase 18 | Service Connection Point Installation
Phase 19 | Boundaries Configuration
Phase 20 | Client Settings Configuration
Phase 21 | Discovery Methods Configuration
Phase 22 | Maintenance Task Configuration
Phase 23 | Backup and Restore

ESXI Host Patching Method using VMware PowerCli

ESXI Host Patching Method using VMware PowerCli

Image result for upgrade and patching via powercli

Great Video Reference

I. Intro/Scope
We will be Illustrating how to install ESXI host patch release by using VMware PowerCLI Install-VMHostPatch cmdlets and other cmdlets Maintenance Mode and Restart command to quickly patch ESXI with eixsting tool set cmdlet with in PowerCLI.

 

II.  Requirements

1. Download Required VMware Patches and upload to ESXI host Datastore.

a. Download ESXI Patch from Link www.vmware.com/go/downloadpatches

You can search specific Patch release for ESXI host.
https://my.vmware.com/group/vmware/patch#search

b. Once Download to local machine, extract the patch file data from the downloaded zip (e.g.update-from-esxi6.0-6.0_update03 zip)
Upload the extracted content to a folder on the ESXi datastore

c. Current ESXI Host Patch Level- 

2. Make sure you have Powercli install on Local machine.
You can go to www.vmware.com/go/powercli.


III. Install ESXI Patch Level Steps.

1. Open PowerCli -run as administrator-

2. Run the follow Command -Connect to the Server via PowerCLI – “Connect-VIServer ipaddress or Host name

For example, Connect-VISERVER -192.168.2.223,

a. You will prompt to input User ID – type root or Domain\user and password.

b. You will see certificate information from ESXI host.

c. Once you logged into the ESX host – You will see user ID and connection is 443.

 

3. Place the Standalone ESXI host into Maintenance mode

by running the follow command “Set-VMHost -VMHost ipaddress -State Maintenance”




For example, the command to Patch is – “Install-VMHostPatch -VMHost ipaddress -HostPath /vmfs/volumes/datastorename/folder/metadata.zip”

 

4. SScrollup to to where Install-VMHostPatch , you will see has completed.

5. Scrool down to command line and type the follow command to reboot ESXI Hosst
I.E Res

Reboot the Host to complete the install

*Optional- I normally run the command ping -T to the ESXI host.

once see the TTL is shows up, likely host has been boot back up …

 

6. Log into Vsphere Click to validate ESXI Patch has been applied. For example, you should see ESXI Update 3 Patch – 

 

ESXI Update 3 Patch Level- 5050593

This concludes Applying Patch Release to ESXI Host via VMware Powercli.

Reference
vSphere PowerCli CMDLETs Reference
Install-VMHOSTPatch
https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/Install-VMHostPatch.html

Quickest Way to Patch an ESX/ESXi Using the Command-line
https://blogs.vmware.com/vsphere/2012/02/quickest-way-to-patch-an-esxesxi-using-the-command-line.html

Understanding  ESXI Patches
https://blogs.vmware.com/vsphere/2012/02/understanding-esxi-patches-finding-patches.html 

 

VMware VM- Guest OS-Windows Server 2016 Install Guide.

What is Windows Server 2016?

Windows Server 2016 is a server operating system developed by Microsoft as part of the Windows NT family of operating systems, developed concurrently with Windows 10.

The first early preview version (Technical Preview) became available on October 1, 2014

Together with the first technical preview of System Center.Unlike previous Windows Server versions, which were released simultaneously with the client operating system,

Windows Server 2016 was released on September 26, 2016, at Microsoft’s Ignite conference and became generally available on October 12, 2016.

Download the datasheet

 

 

 

 


Scope and Purpose:

We will be illustrating how to install a fresh installation of Windows Server 2016 on Vmware Vsphere Virtualization environment.

CPU, Memory and Storage Prerequisites:

A minimum of 1.4 GHz 64-bit EMT64 or AMD64 processor. Quad Core Recommended for production systems.

Disk Space:

For Core installation, a minimum Disk Space of 32 GB is required. Additional 4 GB is required for GUI installation.

Disk Space Capacity Planning:

Microsoft Support recommends 
3X times the RAM size limited up to 32 GB. Which means 96 GB (32×3 = 96 GB)

Memory:
512 MB ECC supported Memory Modules
800 MB for VM Installations, post installation, reduce RAM to 512 MB.

Network Requirements:
Minimum a Gigabit Ethernet adapter with 1 Gbps throughput.

We will set the based Windows Server 2016 Based Installation with the follow Specs

  • 2 CPU
  • 6G of  RAM
  • 80 G of Disk Space”
  • 1G Network Adaptor Interface.

Reference
Guest Operating System Installation Guide – Windows Server 2016

http://partnerweb.vmware.com/GOSIG/Windows_Server_2016.html

Windows Server 2016 Download
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016 

Windows Server 2016 Platform
https://www.microsoft.com/en-us/cloud-platform/windows-server

Windows Server 2016 Essential Memory Limit RAM and Other Hardware Limits
https://www.servethehome.com/windows-server-2016-essentials-ram-limit-and-other-hardware-limits/

General VMware Tools installation instructions,
http://kb.vmware.com/kb/1014294.