Project

General

Profile

Ansible cheat sheet » History » Version 5

Jon Goldberg, 07/15/2021 03:42 PM

1 1 Jon Goldberg
{{last_updated_at}} by {{last_updated_by}}
2
3
# Ansible cheat sheet
4
5 3 Irene Meisel
This page will cover some helpful one-line commands we can execute with Ansible to accomplish various tasks. Always run **git pull** and **git submodule update** before executing these commands.
6 1 Jon Goldberg
7 4 Jon Goldberg
#### Roll back a site to the latest commit (e.g. after a failed merge):
8 1 Jon Goldberg
```shell
9
ansible --become -m shell -a 'cd {{civiroot}} && git clean -fdx {{civiroot}} && get reset --hard HEAD'  mysite1.local,mysite2.local
10
```
11 2 Jon Goldberg
12 4 Jon Goldberg
#### Synchronize a non-canonical site with the live site's database
13 2 Jon Goldberg
```
14
ansible-playbook main-playbook.yml --tags site-db-sync -l mysite.local 
15
```
16
* This works on test and live sites.
17 1 Jon Goldberg
* Depending on the sync strategy on the website inventory, it will pull from last night's backup, or sync directly from the live site.
18
* Only sites that pull from backup can sync to a site that's not on your local machine at present (I'll fix this at some point).
19 4 Jon Goldberg
20
#### Revert a failed local update
21
```shell
22
ansible '*.local' -m shell -a "cd {{webroot}} && git checkout ." --become --become-user "{{ run_as_user }}" 
23
```
24 5 Jon Goldberg
25
#### Send an arbitrary SQL statement to all Civi test instances with maintenance contracts
26
This is considerably trickier to handle places where we don't have root, but works
27
```shell
28
ansible --become --become-user="{{ run_as_user }}" -m shell -a "PATH=\$HOME/bin:\$PATH; echo \"UPDATE civicrm_job SET is_active = 0 WHERE api_action = 'group_rebuild';\" | cv --cwd={{ webroot }} sql" 'maintenance_civi:&websites_test'
29
````