Commit 89088af2 by arbabnazar

rewrite the role and modify the directories creation task

quoted the variable

combine the template into one task

quoted the mode

use with_items instead of join
parent f5134954
...@@ -25,6 +25,18 @@ COMMON_USER_INFO: [] ...@@ -25,6 +25,18 @@ COMMON_USER_INFO: []
COMMON_BIN_DIR: "{{ COMMON_BASE_DIR }}/bin" COMMON_BIN_DIR: "{{ COMMON_BASE_DIR }}/bin"
COMMON_CFG_DIR: "{{ COMMON_BASE_DIR }}/etc" COMMON_CFG_DIR: "{{ COMMON_BASE_DIR }}/etc"
common_directories:
- path: "{{ COMMON_DATA_DIR }}"
- path: "{{ COMMON_APP_DIR }}"
- path: "{{ COMMON_BIN_DIR }}"
- path: "{{ COMMON_CFG_DIR }}"
- path: "{{ COMMON_LOG_DIR }}"
owner: "{{ common_log_user }}"
group: "{{ common_log_user }}"
- path: "/etc/logrotate.d/hourly"
- path: "/etc/rsyslog.d/50-default.conf"
state: absent
COMMON_ENVIRONMENT: 'default_env' COMMON_ENVIRONMENT: 'default_env'
COMMON_DEPLOYMENT: 'default_deployment' COMMON_DEPLOYMENT: 'default_deployment'
COMMON_PYPI_MIRROR_URL: 'https://pypi.python.org/simple' COMMON_PYPI_MIRROR_URL: 'https://pypi.python.org/simple'
......
--- ---
- name: Update CA Certificates - name: Update CA Certificates
shell: > shell: /usr/sbin/update-ca-certificates
/usr/sbin/update-ca-certificates
- name: Add user www-data - name: Add user www-data
# This is the default user for nginx # This is the default user for nginx
user: > user:
name="{{ common_web_user }}" name: "{{ common_web_user }}"
shell=/bin/false shell: /bin/false
- name: Create common directories
file: >
path={{ item }} state=directory owner=root
group=root mode=0755
with_items:
- "{{ COMMON_DATA_DIR }}"
- "{{ COMMON_APP_DIR }}"
- "{{ COMMON_BIN_DIR }}"
- "{{ COMMON_CFG_DIR }}"
# Determine if machine is provisioned via vagrant # Determine if machine is provisioned via vagrant
# Some EC2-specific steps would need to be skipped # Some EC2-specific steps would need to be skipped
- name: check if instance is vagrant - name: check if instance is vagrant
stat: path=/home/vagrant stat:
path: /home/vagrant
register: vagrant_home_dir register: vagrant_home_dir
# Ensure that we get a current version of Git # Ensure that we get a current version of Git
# GitHub requires version 1.7.10 or later # GitHub requires version 1.7.10 or later
# https://help.github.com/articles/https-cloning-errors # https://help.github.com/articles/https-cloning-errors
- name: Add git apt repository - name: Add git apt repository
apt_repository: repo="{{ common_git_ppa }}" apt_repository:
repo: "{{ common_git_ppa }}"
- name: Install role-independent useful system packages - name: Install role-independent useful system packages
# do this before log dir setup; rsyslog package guarantees syslog user present # do this before log dir setup; rsyslog package guarantees syslog user present
apt: > apt:
pkg={{','.join(common_debian_pkgs)}} install_recommends=yes name: "{{ item }}"
state=present update_cache=yes install_recommends: yes
state: present
update_cache: yes
with_items: common_debian_pkgs
- name: Create common log directory - name: Create common directories
file: > file:
path={{ COMMON_LOG_DIR }} state=directory owner=syslog path: "{{ item.path }}"
group=syslog mode=0755 state: "{{ item.state | default('directory') }}"
owner: "{{ item.owner | default('root') }}"
group: "{{ item.group | default('root') }}"
mode: 0755
with_items: common_directories
- name: upload sudo config for key forwarding as root - name: upload sudo config for key forwarding as root
copy: > copy:
src=ssh_key_forward dest=/etc/sudoers.d/ssh_key_forward src: ssh_key_forward
validate='visudo -c -f %s' owner=root group=root mode=0440 dest: /etc/sudoers.d/ssh_key_forward
validate: 'visudo -c -f %s'
owner: root
group: root
mode: 0440
- name: pip install virtualenv - name: pip install virtualenv
pip: > pip:
name="{{ item }}" state=present name: "{{ item }}"
extra_args="-i {{ COMMON_PYPI_MIRROR_URL }}" state: present
extra_args: "-i {{ COMMON_PYPI_MIRROR_URL }}"
with_items: common_pip_pkgs with_items: common_pip_pkgs
- name: Install rsyslog configuration for edX
template: >
dest=/etc/rsyslog.d/99-edx.conf
src=edx_rsyslog.j2
owner=root group=root mode=644
notify: restart rsyslogd
- name: Remove the default rsyslog configuration
file:
path=/etc/rsyslog.d/50-default.conf
state=absent
notify: restart rsyslogd
# This is in common to keep all logrotation config
# in the same role
- name: Create hourly subdirectory in logrotate.d
file: path=/etc/logrotate.d/hourly state=directory
- name: Install logrotate configuration for edX
template: >
dest=/etc/logrotate.d/hourly/edx-services
src=etc/logrotate.d/hourly/edx_logrotate.j2
owner=root group=root mode=644
- name: Install logrotate configuration for tracking file
template: >
dest=/etc/logrotate.d/hourly/tracking.log
src=etc/logrotate.d/hourly/edx_logrotate_tracking_log.j2
owner=root group=root mode=644
- name: Add logrotate for tracking.log to cron.hourly
copy: >
dest=/etc/cron.hourly/logrotate
src=etc/cron.hourly/logrotate
owner=root group=root mode=555
- name: update /etc/hosts - name: update /etc/hosts
template: src=hosts.j2 dest=/etc/hosts template:
src: hosts.j2
dest: /etc/hosts
when: COMMON_HOSTNAME|length > 0 when: COMMON_HOSTNAME|length > 0
register: etc_hosts register: etc_hosts
- name: update /etc/hostname - name: update /etc/hostname
template: src=hostname.j2 dest=/etc/hostname template:
src: hostname.j2
dest: /etc/hostname
when: COMMON_HOSTNAME|length > 0 when: COMMON_HOSTNAME|length > 0
register: etc_hostname register: etc_hostname
- name: run hostname - name: run hostname
shell: > shell: hostname -F /etc/hostname
hostname -F /etc/hostname
when: COMMON_HOSTNAME|length >0 and (etc_hosts.changed or etc_hostname.changed) when: COMMON_HOSTNAME|length >0 and (etc_hosts.changed or etc_hostname.changed)
- name: update /etc/dhcp/dhclient.conf - name: update /etc/dhcp/dhclient.conf
template: src=etc/dhcp/dhclient.conf.j2 dest=/etc/dhcp/dhclient.conf template:
src: etc/dhcp/dhclient.conf.j2
dest: /etc/dhcp/dhclient.conf
when: COMMON_CUSTOM_DHCLIENT_CONFIG when: COMMON_CUSTOM_DHCLIENT_CONFIG
- name: add ssh-warning banner motd - name: Copy the templates to their respestive destination
template: > template:
dest=/etc/motd.tail dest: "{{ item.dest }}"
src={{ COMMON_MOTD_TEMPLATE }} mode=0755 owner=root group=root src: "{{ item.src }}"
owner: root
- name: update ssh config group: root
template: > mode: "{{ item.mode | default(644) }}"
dest=/etc/ssh/sshd_config with_items:
src=sshd_config.j2 mode=0644 owner=root group=root - { src: 'edx_rsyslog.j2', dest: '/etc/rsyslog.d/99-edx.conf' }
notify: restart ssh - { src: 'etc/logrotate.d/hourly/edx_logrotate.j2', dest: '/etc/logrotate.d/hourly/edx-services' }
- { src: 'etc/cron.hourly/logrotate.j2', dest: '/etc/cron.hourly/logrotate', mode: '555' }
- { src: 'etc/logrotate.d/hourly/edx_logrotate_tracking_log.j2', dest: '/etc/logrotate.d/hourly/tracking.log' }
- { src: '{{ COMMON_MOTD_TEMPLATE }}', dest: '/etc/motd.tail', mode: '755' }
- { src: 'sshd_config.j2', dest: '/etc/ssh/sshd_config' }
notify:
- restart ssh
- restart rsyslogd
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment