Ansible | Drupal Workflow | Bakeoff | Config Management | | | | | | |
-
-
Save jendiamond/e60c90a4762a000e6ffe9b1834791e45 to your computer and use it in GitHub Desktop.
The INI file format is an informal standard for configuration files for some platforms or software. INI files are simple text files with a basic structure composed of sections, properties, and values.
- Written in INI or YAML format
- Consists of hosts, groups
- Hosts are IP address of server along with additional info (ssh port to connect, ssh password, sudo password, etc)
- Groups are collections of hosts, to denote a host will run certain playbooks
- Can pull from static files
- Can pull from dynamic/cloud sources
webapp1 ansible_ssh_host=173.230.156.63
app1 ansible_ssh_host=12.34.56.78
app2 ansible_ssh_host=10.0.0.2 ansible_ssh_user=btmash
db1 ansible_ssh_host=1.2.3.5 ansible_ssh_user=btmash ansible_ssh_pass=NoWayMan!
[application]
webapp1
app1
app2
[webservers]
webapp1
[dbservers]
db1
- Design Plans
- Manage configurations
- Map groups of hosts to roles (which define tasks)
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
- Way to make a playbook concise
- Useful for reusability
- Playbooks then include roles provision.yml
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
roles:
- apache
roles/apache/tasks/main.yml
---
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
- Lots of roles created by community
- Try one of these before writing your own
- Jeff Geerling (geerlingguy) has lots of roles that pertain specifically to Drupal
- Variables
- Templates - Jinja2
- Encrypted Data
https://github.com/btmash/drupal_ansible
- 1 application server (NGINX, PHP-FPM, COMPOSER, DRUSH, DRUPAL CONSOLE)
- 1 database server (MARIADB)
- (If we have time) Drupal 8 application
- (not in demo) 1 or more performance servers (REDIS, SOLR, etc)
Drush is a command-line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those who spend their working hours hacking away at the command prompt.
Sunday 11:15a MDEA
Todd Zebert
Slides
https://www.sandcamp.org/web-apis-my-browser-can-do-what
Pretty much everything you do via JavaScript in the browser - if it isn't a native JS instruction - is part of a Web API, even though you may not know it as such. I'll cover the concepts and dive into some of the more useful or interesting APIs, available abstractions, some sample code, and more, to help you make your front ends richer and more app-like. Unfortunately, not all of them are widely supported, or even well supported, some are experimental, and some aren't even on standards tracks - but depending on your use case it may be sufficient; plus, polyfills can often help. This will be a somewhat revised/improved version of the talk given at SANDcamp 2018.
Payment request api](https://developers.google.com/web/fundamentals/payments/)
Compatible with Chrome & Edge only
##FETCH
Drupal 8's Configuration Management System is a modern marvel. We now have a standard way to export, store, and import configuration files.
When working on a single site, built on a fresh Drupal 8 install, the process is pretty straightforward and there are many tools to help along the way.
But what if you're building lots of similar sites? Or maybe a Drupal Distribution? Or Install Profile? Or Sub-Profile? In Drupal 7 we had Features. Do we still need that?
This session will systematically describe the process of creating and storing configuration for a Drupal 8 Distribution, and how it differs from an independent site. We'll then look at workflow, and things to consider when building out each of your resulting sites, which use the distro.
We at UC Davis built SiteFarm and have been running it for a year and a half. We then released SiteFarm Seed, a Base Profile which UC campuses are extending to create their own web publishing platforms for their respective departments. (And you can too!)
If you're using SiteFarm Seed, building your own Drupal Distribution, or an agency working with a University of California campus, this session is for you.
- Acquia Cloud Site Factory | [DOCS]Acquia Cloud Site Factory provides a multisite platform for digital technology organizations to efficiently deliver and govern many digital experience websites at global scale. Ready and flexible, Acquia Cloud Site Factory creates a platform to support standard processes for building, provisioning and maintaining many websites and provides the digital platform team the visibility, trust, and control for operating global websites as a service with a centralized, cloud management console.
Effectively, you build and maintain your Drupal codebase to provide your websites’ core functionality and Acquia Cloud Site Factory will maintain your server and platform configurations, providing a turnkey solution for a well-governed digital platform.
- Site Farm SiteFarm is the brand name of our "out-of-the-box" offering, based on the Drupal 8 software, that gives usersA garden trowel stuck point first in the dirt, ready for use. a robust and intuitive site-building package to build beautiful, content-rich websites in very little time.
The suite is hosted on the Acquia Cloud Site Factory service that will allow users designated as Site Factory site builders to access an interface to quickly create a new site instance, customize a starting point for multiple sites within a department to include sub-branding and content, and bring the site live with very little effort.
- Pantheon Website hosting and management for Drupal and WordPress. Make sites faster, handle traffic spikes, manage multiple websites, get developer tools.
- web/profiles/MYPROFILE/*
- ../MYPROFILE/MYPROFILE.install
- ../MYPROFILE/config
- ../MYPROFILE/modules/custom/
- ../MYPROFILE/mpdules/features
- /*
- composer.json
- composer.lock
- /web/
- ../MYPROFILE/modules/custom/MYMODULE/config
- ../MYPROFILE/modules/features/MYFFEATURE/config
- config/install
- config/optional
- *.settings.yml
- block.block.*.yml
- system.*.yml
- MYMODULE.settings.yml
- views.view.MYMODULE.yml
- etc.
- node.type.*.yml
- field stireage.*.yml
- field.field.*.yml
- block_content.type.*.yml
- views.view.*.yml
- pathauto.pattern.*.yml
- core.entity_view_display.*.yml
- core.entity_form_display.*.yml
- taxonomy.vocabulary.*.yml
--
- Create a field and configure node form and displays in UI: /admin/structures/types/manage/sf_articles/fields
- Re-export the Feature, including new field /admin/config/development/fearures/edit/sirefarm_article
hook_update_N()
Drupal 8 has changed a lot and the process of creating, building, testing and deploying a site is not the exception. During this session, you will understand the process of creating, building, testing and deploying Drupal 8 sites, and learn which tools you can use to improve your local development workflow and reduce project setup and onboarding time, implement automated analysis tools for code review, code coverage and finally how to build an artifact and deploy your project.
Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
Composer is not a package manager in the same sense as Yum or Apt are. Yes, it deals with "packages" or libraries, but it manages them on a per-project basis, installing them in a directory (e.g. vendor) inside your project. By default it does not install anything globally. Thus, it is a dependency manager. It does however support a "global" project for convenience via the global command.
Ahoy is command line tool that gives each of your projects their own CLI app with with zero code and dependencies.
Simply write your commands in a yaml file and ahoy gives you lots of features like:
- a command listing
- per-command help text
- command tab completion
- run commands from any subdirectory
Ahoy makes is easy to create aliases and templates for commands that are useful. It was specifically created to help with running interactive commands within docker containers, but it’s just as useful for local commands, commands over ssh, or really anything that could be run from the command line in a single clean interface.
Sunday 1:45p - Rick Pine http://rixphotos.com/media-suite-tutorial Steps
A presentation on how to create a Media Suite in Drupal 8 (versions 8.5 and up). There is more than one way to do this but I'll present the methods that provide the most commonly sought after functionality when it comes to adding media to a website, whether it's used as one piece of a content type or adding (embedding) it in the body content of a basic page. If you have done this in prior versions of D8 you will notice that there are fewer steps because some of the modules are now included in core. In turn, there are a few configuration differences as well. The presentation will also introduce View Modes.
Sunday 10:00a Room: MDEA
I don't know about you but I've had this conversation with clients many times:
*Stale outdated data on dev server
Me: Do the changes look good?
Person: Yes, deploy them live
Deployment
Person: The feature isn't working correctly. We need to live-fix now!
or
Me: Do the changes look good?
Person: Yes, deploy them live
Deployment
Person: Crap, something else broke. Please fix it
and once the bug is fixed:
Me: Can we consider adding testing?
Person: Its too difficult and will chew up the budget. We have to punt on it for now
And that punt never comes... I'm here to show how not testing chews up more budget, resources, and sanity than not adding any testing. And I want to show how easy it is to adding Behat testing to a drupal website (including a short demo of how I was able to perform a basic response check of over 400 links on my site) in under 20 minutes. We'll go through how to integrate drupal with behat (and headless chrome), how to write basic scenarios, and how to extend with your own custom checks. You will hopefully come out with a better appreciation for why testing is so important and the knowledge to start at it for your own projectsskudes,cin
https://github.com/btmash/d8-behat-bootstrap
Sometimes, Behat’s default configuration is not enough. Some day you’ll need some extended tools to configure your feature suite. For that day, Behat has a very powerful configuration system based on YAML configuration files and profiles.
you don't need a browser for drush related things
if there is hs use js test
MinkExtension port: 8083
composer install
./vendor/bin/behat -d l | grep role
../bin/
https://www.oshyn.com/blogs/2011/november/how_to_create_a_test_suite_in_selenium_
Background:
When I go to the homepage
When I clear the cache