npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ansible-ubuntu

v2.8.4

Published

Playbook generator for Ansible with Ubuntu

Downloads

86

Readme

ansible-ubuntu (vagrant)

Requires Ansible 2.9.5 or greater.

What is this?

A set of Ansible roles for Ubuntu you can npm install locally.

What's included?

| Role | Description | | --- | --- | | common/apt | Make sure apt-get can work with https | | common/certbot | Install certbot and create certs | | common/elasticsearch | Instsall elasticsearch | | common/essentials | Install some commonly used apt packages and install a .vimrc | | common/git | Install git from the git-core ppa | | common/grasshopper | Install dependencies needed for the Grasshopper CMS | | common/hostname | Update server hostname | | common/info | Print out the ubuntu version | | common/java | Install Java | | common/lemp | Install NGINX, MySQL, and PHP-FPM | | common/list-services | Display if some hard coded services are running | | common/mongo | Install mongo | | commmon/mysql | Install MySQL | | common/nginx | Install NGINX | | common/node | Install Node via NVM | | common/oh-my-zsh | Install Oh My ZSH | | common/php-fpm | Install PHP-FPM 7.2, 7.1, 7.0, or 5.6 and uninstall all other versions | | common/pip | Install PIP | | common/postfix | Install and lightly configure Postfix | | common/ruby | Install Ruby | | common/sharp | Install dependencies needed for the Sharp NPM | common/xdebug | Install xdebug for PHP 7.x|

How do you use this?

npm install ansible-ubuntu

To have Ansible check node_modules/ansible-ubuntu for roles add a file called ansible.cfg into the root of your project:

[defaults]

roles_path = node_modules/ansible-ubuntu/ansible
hash_behaviour = merge

Note that the merge hash behavior allows you to override on value in a dictionary. http://docs.ansible.com/ansible/intro_configuration.html#hash-behaviour

Then create a Vagrantfile (you can use Vagrantfile.sample to get started).

In your site.yml and in your meta dirs you can refer to the ansible-ubuntu roles, e.g.:

---

- name: Setup Solid Aggregator Stack
  hosts: vagrant
  become: yes
  roles:
    - common/oh-my-zsh
    - common/elasticsearch

If you add project level roles into your directory, then they can pull in these general purpose roles as follows:

project/nginx/tasks/meta/main.yml

---
dependencies:
   - { role: 'common/nginx'}

The roles have set defaults for the variables you can modify. Just look in the defaults dir of each node.

There is a provision binary that is included. -h for help.

Once this is setup, you can just vagrant up. The initial vagrant up will also provision things. Once the box exists you can vagrant provision to reprovision.

This is not meant to be a replacement for Ansible Galaxy. This is just a suite of Ansible roles I find useful for working with Ubuntu.

Dependencies

You need vagrant and ansible installed:

http://vagrantup.com

Ansible:

sudo easy_install pip
sudo pip install ansible

Options for Specific Roles

Some of these depend on each other. You might have to add the php version to your group_vars ( php.version )

  • Certbot

    • Getting certbot to work fully automated is a little tricky, since it requires working http virtual hosts for all domain, and then you have to switch to working https configs.
    • You must fill out certbot.email
    • You must fill out certbot.domains
    • If you want to run the certbot command yourself, set certbot.create_certs to false.
  • Elasticsearch

    • For ES 5.x, you can adjust memory in /etc/elasticsearch/jvm.options: defaults: -Xms2g Xmx2g
    elasticsearch:
      bind: 127.0.0.1
      version: 5.4.1
  • Git (2.3+)

  • Grasshopper - sets up grasshopper-cli

  • Hostname

    server:
        hostname: "{{ ansible_hostname }}"
  • Java 8

  • Kibana4

  • MySQL

    mysql:
      version: 5.7

    MySQL 5.7 now binds to 127.0.0.1 by default. If you want to bind somewhere else add a linefile to modify. Example:

    lineinfile: dest=/etc/mysql/mysql.conf.d/mysqld.cnf regexp="^bind-address\s*=" line="bind-address = {{ mysql.bind }}"
  • Nginx

  • Node via Nvm

    nvm:
        version: v0.35.3
        node_version: v12.18.3
  • Oh My ZSH

    ohmyzsh:
        theme: avit
  • PHP Fpm

    • define the version you want - all others will be removed

      php:
          version: '7.2'
  • ruby (2.2)

  • Sharp - with needed libvips install

  • Mongo

    • Will skip mongo installation if mongo already installed, unless mongo.force is true.

    • Single Instance

    • Authorization enabled

      mongo:
          force: false
          journaling: "false"
          auth: "enabled"
          root_admin_name: "root"
          root_admin_password: "sample root password"
          backup_name: "backup"
          backup_password: "sample backup password"
          version: "3.4.7" # version has to be 3.0.X, 3.2.X, or 3.4.X
  • Mysql

    mysql:
        version: 5.7
        bind: 127.0.0.1
  • Nginx

    • If you want to use the nginx.conf from this repo, set nginx.replace_template to True. The default is False

      nginx:
          replace_template: False
  • LEMP

  • postfix

    postfix:
        main_mailer_type: Internet Site
        mailname: "{{ ansible_hostname }}"
        protocol: ipv4
  • XDebug

    • This one is very specific for php-fpm 7.1. It was created from https://xdebug.org/wizard.php

Trouble shooting

If tasks are timing out due to a slow connection, add:

  async: 1800

You will have to break apart tasks with_items to indvidual ones.

Since this uses node via nvm, you have to source ~/.zshrc (to load nvm) before any node or npm related task.

Release notes

  • 2.8.0 - mcrypt pulled out into its own file
  • 2.7.0 - loops moved to array & other formatting
  • 2.6.0 - can override skipping mongo reinstall
  • 2.5.0 - php soap added
  • 2.4.0 - php zip added
  • 2.3.0 - php-fpm 7.2 support
  • 2.2.0 - XDebug for php-fpm 7.1
  • 2.1.4 - Updating Java install to work - Oracle JDK via webupd8team is now broken
  • 2.1.3 - Adding mongo driver to phpt
  • 2.1.2 - Patch for checking on /var/run in php
  • 2.1.1 - Do not install mongo as part of php, and some Elasticsearch tweaks
  • 2.1.0 - Certbot
  • 2.0.2 - Testing this and future versions on Ubuntu 16
  • 1.7.0 - Testing 1.x versions on Ubuntu 14