Skip to content

Instantly share code, notes, and snippets.

@krotesk
Created January 27, 2021 10:42
Show Gist options
  • Save krotesk/506ac0e519582743a1cb277d8df2f55c to your computer and use it in GitHub Desktop.
Save krotesk/506ac0e519582743a1cb277d8df2f55c to your computer and use it in GitHub Desktop.
starfish.yml
---
- hosts: starfish
become: yes
vars:
# Используйте это при первом запуске этого скрипта
current_mysql_root_password: ""
updated_mysql_root_password: "asterisk"
current_mysql_asterisk_password: ""
updated_mysql_asterisk_password: "asterisk"
# Закомментируйте вышеизложенное после первого запуска
# Раскомментируйте строки ниже для последующих запусков этого скрипта
# current_mysql_root_password: "YouNeedAReallyGoodPassword"
# updated_mysql_root_password: ""
# current_mysql_asterisk_password: "YouNeedAReallyGoodPasswordHereToo"
# updated_mysql_asterisk_password: ""
tasks:
- name: Install epel-release
dnf:
name: epel-release
state: present
- name: Install dependencies
dnf:
name: ['vim', 'wget', 'MySQL-python']
state: present
- name: Install the MySQL repo.
dnf:
name: http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
state: present
- name: Install mysql-server
dnf:
name: mysql-server
state: present
- name: Override variables for MySQL (RedHat).
set_fact:
mysql_daemon: mysqld
mysql_packages: ['mysql-server']
mysql_log_error: /var/log/mysqld.err
mysql_syslog_tag: mysqld
mysql_pid_file: /var/run/mysqld/mysqld.pid
mysql_socket: /var/lib/mysql/mysql.sock
when: ansible_os_family == "RedHat"
- name: Ensure MySQL server is running
service:
name: mysqld
state: started
enabled: yes
- name: update mysql root pass for localhost root account from local servers
mysql_user:
login_user: root
login_password: ""
name: root
host: ""
password: ""
with_items:
- localhost
- name: update mysql root password for all other local root accounts
mysql_user:
login_user: root
login_password: ""
name: root
host: ""
password: ""
with_items:
- ""
- 127.0.0.1
- ::1
- localhost.localdomain
- name: create asterisk database
mysql_db:
login_user: root
login_password: ""
name: asterisk
state: present
- name: asterisk mysql user
mysql_user:
login_user: root
login_password: ""
name: asterisk
host: ""
password: ""
priv: "asterisk.*:ALL"
with_items:
- ""
- 127.0.0.1
- ::1
- localhost
- localhost.localdomain
- name: remove anonymous user
mysql_user:
login_user: root
login_password: ""
name: ""
state: absent
host: ""
with_items:
- localhost
- ""
- 127.0.0.1
- ::1
- localhost.localdomain
- name: remove test database
mysql_db:
login_user: root
login_password: ""
name: test
state: absent
- user:
name: asterisk
state: present
createhome: yes
- group:
name: asterisk
state: present
- user:
name: astmin
groups: asterisk,wheel
state: present
- name: Install other dependencies
dnf:
name:
- unixODBC
- unixODBC-devel
- mysql-connector-odbc
- MySQL-python
- tcpdump
- ntp
- ntpdate
- jansson
- bind-utils
state: present
# Tweak the firewall for UDP/SIP
- firewalld:
port: 5060/udp
permanent: true
state: enabled
# Tweak firewall for UDP/RTP
- firewalld:
port: 10000-20000/udp
permanent: true
state: enabled
- name: Ensure NTP is running
service:
name: ntpd
state: started
enabled: yes
# The libmyodbc8a.so file is versioned, so if you don't have version 8, see what the
# /usr/lib64/libmyodbc<version>a.so file is, and refer to that instead
# on your 'Driver64' line, and then run the playbook again
- name: update odbcinst.ini
lineinfile:
dest: /etc/odbcinst.ini
regexp: ""
line: ""
state: present
with_items:
- regexp: "^Driver64"
line: "Driver64 = /usr/lib64/libmyodbc8a.so"
- regexp: "^Setup64"
line: "Setup64 = /usr/lib64/libodbcmyS.so"
- name: create odbc.ini
blockinfile:
path: /etc/odbc.ini
create: yes
block: |
[asterisk]
Driver = MySQL
Description = MySQL connection to 'asterisk' database
Server = localhost
Port = 3306
Database = asterisk
UserName = asterisk
Password =
#Socket = /var/run/mysqld/mysqld.sock
Socket = /var/lib/mysql/mysql.sock
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment