Ansible Role - Reboot

Simple Ansible role for rebooting servers

Repository on GitHub

Galaxy

Minimal Ansible version 2.7. Supports Travis CI (edit .travis.yml and molecule/default/molecule.yml as you like)

Tested:


Vagrant Multi-Machine

Simple example of Vagrantfile that will create two virtual machines: Ubuntu 18.04 and CentOS 7.7

Vagrant.configure("2") do |config|
  config.vm.define "v-ubuntu" do |vu|
    vu.vm.hostname = "v-ubuntu"
    vu.vm.box = "bento/ubuntu-18.04"
    vu.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"

    vu.vm.provider "virtualbox" do |vb|
      vb.name = "v-ubuntu"
      vb.gui = false
      vb.memory = 512
      vb.cpus = 1
    end

    vu.vm.provision "shell", run: "always", inline: <<-SHELL
      echo "Hello from Ubuntu!"
    SHELL

  end

  config.vm.define "v-centos" do |vc|
    vc.vm.hostname = "v-centos"
    vc.vm.box = "bento/centos-7.7"
    vc.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"

    vc.vm.provider "virtualbox" do |vb|
      vb.name = "v-centos"
      vb.gui = false
      vb.memory = 512
      vb.cpus = 1
    end

    vc.vm.provision "shell", run: "always", inline: <<-SHELL
      echo "Hello from CentOS!"
    SHELL

  end

end

vu.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" - I used bridged public network from my en1 wireless interface on my iMac

Usage:

# boot all machines:
$ vagrant up
# boot custom machine:
$ vagrant up v-centos

How to create multiple machines in a loop?

Vagrant.configure("2") do |config|
    config.vm.box = "bento/ubuntu-18.04"
    config.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)"
    (1..5).each do |i|
        config.vm.define "v-host-#{i}" do |node|
            node.vm.hostname = "v-host-#{i}"
            node.vm.provider "virtualbox" do |vb|
                vb.name = "v-host-#{i}"
                vb.gui = false
                vb.memory = 512
                vb.cpus = 1
            end
        end
    end
end

Will create five Ubuntu 18.04 virtual machines.


Zabbix Web + Nginx

Original source

/etc/nginx/nginx.conf

user www-data;
worker_processes 5;
#worker_rlimit_nofile 256000;

error_log /dev/fd/2 warn;

pid        /var/run/nginx.pid;

events {
    worker_connections 5120;
    use epoll;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /dev/fd/1 main;

    client_body_timeout             5m;
    send_timeout                    5m;

    connection_pool_size            4096;
    client_header_buffer_size       4k;
    large_client_header_buffers     4 4k;
    request_pool_size               4k;
    reset_timedout_connection       on;


    gzip                            on;
    gzip_min_length                 100;
    gzip_buffers                    4 8k;
    gzip_comp_level                 5;
    gzip_types                      text/plain;
    gzip_types                      application/x-javascript;
    gzip_types                      text/css;

    output_buffers                  128 512k;
    postpone_output                 1460;
    aio                             on;
    directio                        512;

    sendfile                        on;
    client_max_body_size            8m;
    client_body_buffer_size	    256k;
    fastcgi_intercept_errors        on;

    tcp_nopush                      on;
    tcp_nodelay                     on;

    keepalive_timeout               75 20;

    ignore_invalid_headers          on;

    index                           index.php;
    server_tokens                   off;

    include /etc/nginx/conf.d/*.conf;
}
Read More