Skip to content

Instantly share code, notes, and snippets.

@singingwolfboy
Last active August 29, 2015 14:24
Show Gist options
  • Save singingwolfboy/071e8ce6703eebf68df5 to your computer and use it in GitHub Desktop.
Save singingwolfboy/071e8ce6703eebf68df5 to your computer and use it in GitHub Desktop.
[db@mastodon:~]
% cd devstack
[db@mastodon:~/devstack]
% ls
Vagrantfile cs_comments_service edx-platform more ora themes
[db@mastodon:~/devstack]
% cat Vagrantfile
Vagrant.require_version ">= 1.5.3"
unless Vagrant.has_plugin?("vagrant-vbguest")
raise "Please install the vagrant-vbguest plugin by running `vagrant plugin install vagrant-vbguest`"
end
VAGRANTFILE_API_VERSION = "2"
MEMORY = 4096
CPU_COUNT = 2
$script = <<SCRIPT
if [ ! -d /edx/app/edx_ansible ]; then
echo "Error: Base box is missing provisioning scripts." 1>&2
exit 1
fi
OPENEDX_RELEASE=$1
export PYTHONUNBUFFERED=1
source /edx/app/edx_ansible/venvs/edx_ansible/bin/activate
cd /edx/app/edx_ansible/edx_ansible/playbooks
# Did we specify an openedx release?
if [ -n "$OPENEDX_RELEASE" ]; then
EXTRA_VARS="-e edx_platform_version=$OPENEDX_RELEASE \
-e certs_version=$OPENEDX_RELEASE \
-e forum_version=$OPENEDX_RELEASE \
-e xqueue_version=$OPENEDX_RELEASE \
"
CONFIG_VER=$OPENEDX_RELEASE
# Need to ensure that the configuration repo is updated
# The vagrant-devstack.yml playbook will also do this, but only
# after loading the playbooks into memory. If these are out of date,
# this can cause problems (e.g. looking for templates that no longer exist).
/edx/bin/update configuration $CONFIG_VER
else
CONFIG_VER="master"
fi
ansible-playbook -i localhost, -c local vagrant-devstack.yml -e configuration_version=$CONFIG_VER $EXTRA_VARS
SCRIPT
edx_platform_mount_dir = "edx-platform"
themes_mount_dir = "themes"
forum_mount_dir = "cs_comments_service"
ora_mount_dir = "ora"
if ENV['VAGRANT_MOUNT_BASE']
edx_platform_mount_dir = ENV['VAGRANT_MOUNT_BASE'] + "/" + edx_platform_mount_dir
themes_mount_dir = ENV['VAGRANT_MOUNT_BASE'] + "/" + themes_mount_dir
forum_mount_dir = ENV['VAGRANT_MOUNT_BASE'] + "/" + forum_mount_dir
ora_mount_dir = ENV['VAGRANT_MOUNT_BASE'] + "/" + ora_mount_dir
end
# map the name of the git branch that we use for a release
# to a name and a file path, which are used for retrieving
# a Vagrant box from the internet.
openedx_releases = {
"openedx/rc/aspen-2014-09-10" => {
:name => "aspen-devstack-rc1", :file => "20141009-aspen-devstack-rc1.box",
},
"aspen.1" => {
:name => "aspen-devstack-1", :file => "20141028-aspen-devstack-1.box",
},
"named-release/aspen" => {
:name => "aspen-devstack-1", :file => "20141028-aspen-devstack-1.box",
},
"named-release/birch.rc1" => {
:name => "birch-devstack-rc1", :file => "20150203-birch-devstack-rc1.box",
},
"named-release/birch.rc2" => {
:name => "birch-devstack-rc2", :file => "20150211-birch-devstack-rc2.box",
},
"named-release/birch.rc3" => {
:name => "birch-devstack-rc3", :file => "20150213-birch-devstack-rc3.box",
},
"named-release/birch" => {
:name => "birch-devstack", :file => "20150224-birch-devstack.box",
},
}
openedx_releases.default = {
:name => "lavash-devstack", :file => "20141118-lavash-devstack.box"
}
openedx_releases_vmware = {
"named-release/birch" => {
:name => "birch-devstack-vmware", :file => "20150610-birch-devstack-vmware.box",
},
}
openedx_releases_vmware.default = {
:name => "kifli-devstack-vmware", :file => "20140829-kifli-devstack-vmware.box",
}
rel = ENV['OPENEDX_RELEASE']
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Creates an edX devstack VM from an official release
config.vm.box = openedx_releases[rel][:name]
config.vm.box_url = "http://files.edx.org/vagrant-images/#{openedx_releases[rel][:file]}"
config.vm.network :private_network, ip: "192.168.33.10"
config.vm.network :forwarded_port, guest: 8000, host: 8000
config.vm.network :forwarded_port, guest: 8001, host: 8001
config.vm.network :forwarded_port, guest: 18080, host: 18080
config.vm.network :forwarded_port, guest: 8765, host: 8765
config.vm.network :forwarded_port, guest: 9200, host: 9200
config.ssh.insert_key = true
config.vm.synced_folder ".", "/vagrant", disabled: true
# Enable X11 forwarding so we can interact with GUI applications
if ENV['VAGRANT_X11']
config.ssh.forward_x11 = true
end
if ENV['VAGRANT_USE_VBOXFS'] == 'true'
config.vm.synced_folder "#{edx_platform_mount_dir}", "/edx/app/edxapp/edx-platform",
create: true, owner: "edxapp", group: "www-data"
config.vm.synced_folder "#{themes_mount_dir}", "/edx/app/edxapp/themes",
create: true, owner: "edxapp", group: "www-data"
config.vm.synced_folder "#{forum_mount_dir}", "/edx/app/forum/cs_comments_service",
create: true, owner: "forum", group: "www-data"
config.vm.synced_folder "#{ora_mount_dir}", "/edx/app/ora/ora",
create: true, owner: "ora", group: "www-data"
else
config.vm.synced_folder "#{edx_platform_mount_dir}", "/edx/app/edxapp/edx-platform",
create: true, nfs: true
config.vm.synced_folder "#{themes_mount_dir}", "/edx/app/edxapp/themes",
create: true, nfs: true
config.vm.synced_folder "#{forum_mount_dir}", "/edx/app/forum/cs_comments_service",
create: true, nfs: true
config.vm.synced_folder "#{ora_mount_dir}", "/edx/app/ora/ora",
create: true, nfs: true
end
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", MEMORY.to_s]
vb.customize ["modifyvm", :id, "--cpus", CPU_COUNT.to_s]
# Allow DNS to work for Ubuntu 12.10 host
# http://askubuntu.com/questions/238040/how-do-i-fix-name-service-for-vagrant-client
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
["vmware_fusion", "vmware_workstation"].each do |vmware_provider|
config.vm.provider vmware_provider do |v, override|
override.vm.box = openedx_releases_vmware[rel][:name]
override.vm.box_url = "http://files.edx.org/vagrant-images/#{openedx_releases_vmware[rel][:file]}"
v.vmx["memsize"] = MEMORY.to_s
v.vmx["numvcpus"] = CPU_COUNT.to_s
end
end
# Use vagrant-vbguest plugin to make sure Guest Additions are in sync
config.vbguest.auto_reboot = true
config.vbguest.auto_update = true
# Assume that the base box has the edx_ansible role installed
# We can then tell the Vagrant instance to update itself.
config.vm.provision "shell", inline: $script, args: rel
end
[db@mastodon:~/devstack]
% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'lavash-devstack'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: devstack_default_1435777415052_10824
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 8000 => 8000 (adapter 1)
default: 8001 => 8001 (adapter 1)
default: 18080 => 18080 (adapter 1)
default: 8765 => 8765 (adapter 1)
default: 9200 => 9200 (adapter 1)
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if its present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
GuestAdditions versions on your host (4.3.24) and guest (4.3.16) do not match.
stdin: is not a tty
Reading package lists...
Building dependency tree...
Reading state information...
linux-headers-3.2.0-23-generic is already the newest version.
The following packages will be upgraded:
dkms
1 upgraded, 0 newly installed, 0 to remove and 152 not upgraded.
Need to get 72.6 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main dkms all 2.2.0.3-1ubuntu3.2 [72.6 kB]
dpkg-preconfigure: unable to re-open stdin: No such file or directory
Fetched 72.6 kB in 0s (1,620 kB/s)
(Reading database ... 102548 files and directories currently installed.)
Preparing to replace dkms 2.2.0.3-1ubuntu3 (using .../dkms_2.2.0.3-1ubuntu3.2_all.deb) ...
Unpacking replacement dkms ...
Processing triggers for man-db ...
Setting up dkms (2.2.0.3-1ubuntu3.2) ...
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
stdin: is not a tty
mount: warning: /mnt seems to be mounted read-only.
Installing Virtualbox Guest Additions 4.3.24 - guest version is 4.3.16
stdin: is not a tty
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.24 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.3.16 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used
Installing the Window System drivers
Installing X.Org Server 1.11 modules ...done.
Setting up the Window System to use the Guest Additions ...done.
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.
Installing graphics libraries and desktop services components ...done.
An error occurred during installation of VirtualBox Guest Additions 4.3.24. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
stdin: is not a tty
==> default: Checking for guest additions in VM...
==> default: Checking for host entries
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
==> default: Mounting NFS shared folders...
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default: [WARNING]: It is unneccessary to use '{{' in loops, leave variables in loop
==> default: expressions bare.
==> default:
==> default: PLAY [Configure instance(s)] **************************************************
==> default:
==> default: GATHERING FACTS ***************************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | debug var=user_info] ********************************************
==> default: ok: [localhost] => {
==> default: "item": "",
==> default: "user_info": []
==> default: }
==> default:
==> default: TASK: [user | create the edxadmin group] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | ensure sudoers.d is read] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | grant full sudo access to the edxadmin group] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | create the users] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create .ssh directory] ******************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | assign admin role to admin users] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | copy github key[s] to .ssh/authorized_keys2] ********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | set permissions on .ssh/authorized_keys2] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | copy additional authorized keys] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create bashrc file for normal users] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create .profile for all users] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | modify shell for restricted users] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create bashrc file for restricted users] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create sudoers file from template] ******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | change home directory ownership to root for restricted users] ***
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create ~/bin directory] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create allowed command links] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | install security packages] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | update all system packages] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | configure periodic unattended-upgrades] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | disable unattended-upgrades] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | only unattended-upgrade from security repo] *****************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | disable security only updates on unattended-upgrades] *******
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check if we are vulnerable] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Apply bash security update if we are vulnerable] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check again and fail if we are still vulnerable] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | Update CA Certificates] ***************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [common | Add user www-data] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create common directories] ************************************
==> default: ok: [localhost] => (item=/edx/var)
==> default: ok: [localhost] => (item=/edx/app)
==> default: ok: [localhost] => (item=/edx/bin)
==> default: ok: [localhost] => (item=/edx/etc)
==> default:
==> default: TASK: [common | check if instance is vagrant] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install python-pycurl] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Add git apt repository] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install role-independent useful system packages] **************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create common log directory] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | upload sudo config for key forwarding as root] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | pip install virtualenv] ***************************************
==> default: ok: [localhost] => (item=pip==1.5.6)
==> default: ok: [localhost] => (item=setuptools==3.6)
==> default: ok: [localhost] => (item=virtualenv==1.11.6)
==> default: ok: [localhost] => (item=virtualenvwrapper)
==> default:
==> default: TASK: [common | Install rsyslog configuration for edX] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Remove the default rsyslog configuration] *********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create hourly subdirectory in logrotate.d] ********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install logrotate configuration for edX] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install logrotate configuration for tracking file] ************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Add logrotate for tracking.log to cron.hourly] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | update /etc/hosts] ********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update /etc/hostname] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | run hostname] *************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update /etc/dhcp/dhclient.conf] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update the ssh motd on Ubuntu] ********************************
==> default: skipping: [localhost] => (item=/etc/update-motd.d/10-help-text)
==> default: skipping: [localhost] => (item=/usr/share/landscape/landscape-sysinfo.wrapper)
==> default: skipping: [localhost] => (item=/etc/update-motd.d/51-cloudguest)
==> default: skipping: [localhost] => (item=/etc/update-motd.d/91-release-upgrade)
==> default:
==> default: TASK: [common | add ssh-warning banner motd] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | update ssh config] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | create all service directories] **********************************
==> default: ok: [localhost] => (item={'value': {'owner': 'root', 'path': u'/edx/app/aws', 'group': 'root', 'mode': '0755'}, 'key': 'home'})
==> default: ok: [localhost] => (item={'value': {'owner': 'root', 'path': u'/edx/var/aws', 'group': 'root', 'mode': '0700'}, 'key': 'data'})
==> default: ok: [localhost] => (item={'value': {'owner': 'syslog', 'path': u'/edx/var/log/aws', 'group': 'syslog', 'mode': '0700'}, 'key': 'logs'})
==> default:
==> default: TASK: [aws | install system packages] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | install aws python packages] *************************************
==> default: ok: [localhost] => (item=https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz)
==> default: ok: [localhost] => (item=awscli==1.4.2)
==> default: ok: [localhost] => (item=boto==2.32.0)
==> default:
==> default: TASK: [aws | get s3cmd] *******************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | untar s3cmd] *****************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | create symlink for s3cmd] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | create s3 log sync script] ***************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | create symlink for s3 log sync script] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | force logrotate on supervisor stop] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | cronjob for s3 log sync] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_ansible | create application user] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create edx_ansible app and venv dir] *********************
==> default: ok: [localhost] => (item=/edx/app/edx_ansible)
==> default: ok: [localhost] => (item=/edx/var/edx_ansible)
==> default: ok: [localhost] => (item=/edx/app/edx_ansible/venvs)
==> default:
==> default: TASK: [edx_ansible | install a bunch of system packages on which edx_ansible relies] ***
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | git checkout edx_ansible repo into edx_ansible_code_dir] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edx_ansible | install edx_ansible venv requirements] *******************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edx_ansible | create update script] ************************************
==> default: fatal: [localhost] => Traceback (most recent call last):
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/runner/__init__.py", line 532, in _executor
==> default: rm_tmp = None
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/runner/__init__.py", line 629, in _executor_internal
==> default: inject = utils.combine_vars(inject, host_variables)
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/runner/__init__.py", line 815, in _executor_internal_inner
==> default: result.result['stdout_lines'] = result.result['stdout'].splitlines()
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/runner/action_plugins/template.py", line 125, in run
==> default: dest_result = self.runner._execute_module(conn, tmp, 'slurp', "path=%s" % dest, inject=inject, persist_files=True)
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/runner/__init__.py", line 407, in _execute_module
==> default: if thisuser is None and self.remote_user:
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/runner/__init__.py", line 1083, in _configure_module
==> default: File "/edx/app/edx_ansible/venvs/edx_ansible/local/lib/python2.7/site-packages/ansible/module_common.py", line 129, in modify_module
==> default: if not module_path.endswith(".ps1"):
==> default: IOError: [Errno 2] No such file or directory: '/edx/app/edx_ansible/venvs/edx_ansible/share/ansible/files/copy'
==> default:
==> default: FATAL: all hosts have already failed -- aborting
==> default:
==> default: PLAY RECAP ********************************************************************
==> default: to retry, use: --limit @/root/vagrant-devstack.retry
==> default:
==> default: localhost : ok=36 changed=5 unreachable=1 failed=0
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
[db@mastodon:~/devstack]
% vagrant provision 1 ↵
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default:
==> default: PLAY [Configure instance(s)] **************************************************
==> default:
==> default: GATHERING FACTS ***************************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | debug var=user_info] ********************************************
==> default: ok: [localhost] => {
==> default: "var": {
==> default: "user_info": []
==> default: }
==> default: }
==> default:
==> default: TASK: [user | create the edxadmin group] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | ensure sudoers.d is read] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | grant full sudo access to the edxadmin group] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | create the users] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create .ssh directory] ******************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | assign admin role to admin users] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | get github key[s]] **********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | update the authorized_keys file] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create bashrc file for normal users] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create .profile for all users] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | modify shell for restricted users] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create bashrc file for restricted users] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create sudoers file from template] ******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | change home directory ownership to root for restricted users] ***
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create ~/bin directory] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create allowed command links] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | install security packages] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | update all system packages] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | configure periodic unattended-upgrades] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | disable unattended-upgrades] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | only unattended-upgrade from security repo] *****************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | disable security only updates on unattended-upgrades] *******
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check if we are vulnerable] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Apply bash security update if we are vulnerable] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check again and fail if we are still vulnerable] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | GHOST.c] ****************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | compile GHOST] **********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check if we are vulnerable] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Apply glibc security update if we are vulnerable] ***********
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | Update CA Certificates] ***************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [common | Add user www-data] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create common directories] ************************************
==> default: ok: [localhost] => (item=/edx/var)
==> default: ok: [localhost] => (item=/edx/app)
==> default: ok: [localhost] => (item=/edx/bin)
==> default: ok: [localhost] => (item=/edx/etc)
==> default:
==> default: TASK: [common | check if instance is vagrant] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Add git apt repository] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install role-independent useful system packages] **************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create common log directory] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | upload sudo config for key forwarding as root] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | pip install virtualenv] ***************************************
==> default: ok: [localhost] => (item=pip==1.5.6)
==> default: ok: [localhost] => (item=setuptools==3.6)
==> default: ok: [localhost] => (item=virtualenv==1.11.6)
==> default: ok: [localhost] => (item=virtualenvwrapper)
==> default:
==> default: TASK: [common | Install rsyslog configuration for edX] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Remove the default rsyslog configuration] *********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create hourly subdirectory in logrotate.d] ********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install logrotate configuration for edX] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install logrotate configuration for tracking file] ************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Add logrotate for tracking.log to cron.hourly] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | update /etc/hosts] ********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update /etc/hostname] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | run hostname] *************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update /etc/dhcp/dhclient.conf] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | add ssh-warning banner motd] **********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [common | update ssh config] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | gather ec2 facts for use in other roles] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | shell /sbin/ifconfig eth0 mtu 1500 up
==> default: ] **************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | lineinfile dest=/etc/dhcp/dhclient.conf regexp="^supercede interfact-mtu" line="supercede interface-mtu 1500;" insertbefore="^request"
==> default: ] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | create all service directories] **********************************
==> default: ok: [localhost] => (item={'key': 'home', 'value': {'owner': 'root', 'path': u'/edx/app/aws', 'group': 'root', 'mode': '0755'}})
==> default: ok: [localhost] => (item={'key': 'data', 'value': {'owner': 'root', 'path': u'/edx/var/aws', 'group': 'root', 'mode': '0700'}})
==> default: changed: [localhost] => (item={'key': 'logs', 'value': {'owner': 'syslog', 'path': u'/edx/var/log/aws', 'group': 'syslog', 'mode': '0650'}})
==> default:
==> default: TASK: [aws | install system packages] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | install aws python packages] *************************************
==> default: ok: [localhost] => (item=https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz)
==> default: ok: [localhost] => (item=awscli==1.4.2)
==> default: changed: [localhost] => (item=boto=="2.34.0")
==> default:
==> default: TASK: [aws | get s3cmd] *******************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | untar s3cmd] *****************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | create symlink for s3cmd] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | create s3 log sync script] ***************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | create symlink for s3 log sync script] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | force logrotate on supervisor stop] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | cronjob for s3 log sync] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | update the ssh motd on Ubuntu] ***********************************
==> default: skipping: [localhost] => (item=/etc/update-motd.d/10-help-text)
==> default: skipping: [localhost] => (item=/usr/share/landscape/landscape-sysinfo.wrapper)
==> default: skipping: [localhost] => (item=/etc/update-motd.d/51-cloudguest)
==> default: skipping: [localhost] => (item=/etc/update-motd.d/91-release-upgrade)
==> default:
==> default: TASK: [edx_ansible | create application user] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create edx_ansible app and venv dir] *********************
==> default: ok: [localhost] => (item=/edx/app/edx_ansible)
==> default: ok: [localhost] => (item=/edx/var/edx_ansible)
==> default: ok: [localhost] => (item=/edx/app/edx_ansible/venvs)
==> default:
==> default: TASK: [edx_ansible | install a bunch of system packages on which edx_ansible relies] ***
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | git checkout edx_ansible repo into edx_ansible_code_dir] ***
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | install edx_ansible venv requirements] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create update script] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edx_ansible | create a symlink for update.sh] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create a symlink for ansible-playbook] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create a symlink for the playbooks dir] ******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install ppa key] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxlocal | install apt repository] *************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxlocal | look for mysql 5.5] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxlocal | stop mysql] *************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxlocal | remove prior version of mysql] ******************************
==> default: changed: [localhost] => (item=mysql-server-5.5,mysql-server)
==> default:
==> default: TASK: [edxlocal | install mysql 56 and dependencies] **************************
==> default: changed: [localhost] => (item=software-properties-common,mysql-server)
==> default:
==> default: TASK: [edxlocal | start mysql] ************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install packages needed for single server] ******************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the edxapp db user] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for edxapp] *******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the xqueue db user] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for xqueue] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the ora db user] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for ora] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create databases for analytics api] *************************
==> default: ok: [localhost] => (item=analytics-api)
==> default: ok: [localhost] => (item=reports)
==> default:
==> default: TASK: [edxlocal | create database for insights] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create database for ecommerce] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | setup users for ecommerce] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create api user for the analytics api] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create read-only reports user for the analytics-api] ********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the edx-notes-api db user] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for edx-notes-api] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the migration db user] ********************************
==> default: ok: [localhost] => (item=edxapp)
==> default: skipping: [localhost] => (item=None)
==> default: ok: [localhost] => (item=ora)
==> default: skipping: [localhost] => (item=None)
==> default: ok: [localhost] => (item=analytics-api)
==> default: ok: [localhost] => (item=reports)
==> default: skipping: [localhost] => (item=None)
==> default: skipping: [localhost] => (item=None)
==> default:
==> default: TASK: [edxlocal | setup the read-only db user] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the admin db user] ************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install memcached] ******************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | check to see that MongoDB 2.4 is not installed] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | verify 2.4 not installed] **************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | remove mongo 2.4 if present] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | install python pymongo for mongo_user ansible module] **********
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | add the mongodb signing key] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | add the mongodb repo to the sources list] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | install mongo server and recommends] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | create mongo dirs] *********************************************
==> default: ok: [localhost] => (item=/edx/var/mongo)
==> default: ok: [localhost] => (item=/edx/var/mongo/mongodb)
==> default: ok: [localhost] => (item=/edx/var/log/mongo)
==> default:
==> default: TASK: [mongo | stop mongod service] *******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | move mongodb to {{ mongo_data_dir }}] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | copy mongodb key file] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | copy configuration template] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | start mongo service] *******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | wait for mongo server to start] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | drop super user script] ****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | create super user with js] *************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | delete super user script] **************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | Create the file to initialize the mongod replica set] **********
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | Initialize the replication set] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | create a mongodb user] *****************************************
==> default: ok: [localhost] => (item={'password': 'password', 'user': 'cs_comments_service', 'roles': 'readWrite', 'database': 'cs_comments_service'})
==> default: ok: [localhost] => (item={'password': 'password', 'user': 'edxapp', 'roles': 'readWrite', 'database': 'edxapp'})
==> default:
==> default: TASK: [mongo | create a mongodb user] *****************************************
==> default: skipping: [localhost] => (item={'password': 'password', 'user': 'cs_comments_service', 'roles': 'readWrite', 'database': 'cs_comments_service'})
==> default: skipping: [localhost] => (item={'password': 'password', 'user': 'edxapp', 'roles': 'readWrite', 'database': 'edxapp'})
==> default:
==> default: TASK: [mongo | install s3cmd] *************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | configure s3cmd] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | install backup-mongo-to-s3 script] *****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | schedule backup-mongo-to-3s crontab] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp_common | Install system packages] *******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create application user] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor service user] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/app/supervisor)
==> default: ok: [localhost] => (item=/edx/app/supervisor/venvs/supervisor)
==> default:
==> default: TASK: [supervisor | create service user accessible dirs] **********************
==> default: ok: [localhost] => (item=/edx/app/supervisor/conf.d)
==> default: ok: [localhost] => (item=/edx/app/supervisor/conf.available.d)
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/var/supervisor)
==> default: ok: [localhost] => (item=/edx/var/log/supervisor)
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost] => (item=boto=="2.34.0")
==> default: ok: [localhost] => (item=python-simple-hipchat)
==> default:
==> default: TASK: [supervisor | create supervisor upstart job] ****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create pre_supervisor upstart job] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | write the pre_suprevisor python script] *******************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor master config] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisortctl] **********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisor cfg] **********************
==> default: changed: [localhost] => (item=/edx/app/supervisor/supervisord.conf)
==> default: changed: [localhost] => (item=/edx/app/supervisor/conf.d)
==> default:
==> default: TASK: [supervisor | create helper script for running supervisor] **************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | start supervisor] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | wait for web port to be available] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | update supervisor configuration] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_user required for role] *****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_dir required for role] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_ruby_version required for role] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv user {{ edxapp_user }}] ***************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv dir if it does not exist] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | install build depends] *****************************************
==> default: ok: [localhost] => (item=curl,build-essential,libcurl4-openssl-dev,libreadline-dev,libssl-dev,libxml2-dev,libxslt1-dev,zlib1g-dev)
==> default:
==> default: TASK: [rbenv | update rbenv repo] *********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | ensure ruby_env exists] ****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | check ruby-build installed] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | if ruby-build exists, which versions we can install] ***********
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | create temporary directory] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | clone ruby-build repo] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install ruby-build] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | remove temporary directory] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | check ruby {{ edxapp_ruby_version }} installed] ****************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install ruby {{ edxapp_ruby_version }}] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | set global ruby {{ edxapp_ruby_version }}] *********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install bundler] ***********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | remove rbenv version of rake] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | install rake gem] **********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | rehash] ********************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create application user] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor service user] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/app/devpi/supervisor)
==> default: ok: [localhost] => (item=/edx/app/devpi/venvs/supervisor)
==> default:
==> default: TASK: [supervisor | create service user accessible dirs] **********************
==> default: ok: [localhost] => (item=/edx/app/devpi/supervisor/conf.d)
==> default: ok: [localhost] => (item=/edx/app/devpi/supervisor/conf.available.d)
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/var/devpi/supervisor)
==> default: ok: [localhost] => (item=/edx/var/log/devpi/supervisor)
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost] => (item=boto=="2.34.0")
==> default: ok: [localhost] => (item=python-simple-hipchat)
==> default:
==> default: TASK: [supervisor | create supervisor upstart job] ****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create pre_supervisor upstart job] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | write the pre_suprevisor python script] *******************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor master config] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisortctl] **********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisor cfg] **********************
==> default: skipping: [localhost] => (item=/edx/app/devpi/supervisor/supervisord.conf)
==> default: skipping: [localhost] => (item=/edx/app/devpi/supervisor/conf.d)
==> default:
==> default: TASK: [supervisor | create helper script for running supervisor] **************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | start supervisor] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | wait for web port to be available] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | update supervisor configuration] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create devpi user] *********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create devpi application directories] **************************
==> default: ok: [localhost] => (item=/edx/app/devpi)
==> default: ok: [localhost] => (item=/edx/app/devpi/venvs/devpi)
==> default:
==> default: TASK: [devpi | create the devpi data directory, needs write access by the service user] ***
==> default: ok: [localhost] => (item=/edx/var/devpi)
==> default: ok: [localhost] => (item=/edx/var/devpi/data)
==> default:
==> default: TASK: [devpi | install devpi pip pkgs] ****************************************
==> default: ok: [localhost] => (item=devpi-server)
==> default: ok: [localhost] => (item=eventlet)
==> default:
==> default: TASK: [devpi | writing supervisor script] *************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [devpi | create a symlink for venv python, pip] *************************
==> default: ok: [localhost] => (item=python)
==> default: ok: [localhost] => (item=pip)
==> default:
==> default: TASK: [devpi | create a symlink for venv supervisor] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create a symlink for supervisor config] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | update devpi supervisor configuration] *************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [devpi | ensure devpi is started] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [nltk | Install unzip] **************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [nltk | create the nltk data directory and subdirectories] **************
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/taggers/maxent_treebank_pos_tagger.zip', 'path': 'taggers/maxent_treebank_pos_tagger'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/stopwords.zip', 'path': 'corpora/stopwords'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/wordnet.zip', 'path': 'corpora/wordnet'})
==> default:
==> default: TASK: [nltk | download nltk data] *********************************************
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/taggers/maxent_treebank_pos_tagger.zip', 'path': 'taggers/maxent_treebank_pos_tagger'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/stopwords.zip', 'path': 'corpora/stopwords'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/wordnet.zip', 'path': 'corpora/wordnet'})
==> default:
==> default: TASK: [nltk | unarchive nltk data] ********************************************
==> default: skipping: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/taggers/maxent_treebank_pos_tagger.zip', 'path': 'taggers/maxent_treebank_pos_tagger'})
==> default: skipping: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/stopwords.zip', 'path': 'corpora/stopwords'})
==> default: skipping: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/wordnet.zip', 'path': 'corpora/wordnet'})
==> default:
==> default: TASK: [user | debug var=user_info] ********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create the edxadmin group] **************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | ensure sudoers.d is read] ***************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | grant full sudo access to the edxadmin group] *******************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create the users] ***********************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create .ssh directory] ******************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | assign admin role to admin users] *******************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | get github key[s]] **********************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | update the authorized_keys file] ********************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create bashrc file for normal users] ****************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create .profile for all users] **********************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | modify shell for restricted users] ******************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create bashrc file for restricted users] ************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create sudoers file from template] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | change home directory ownership to root for restricted users] ***
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create ~/bin directory] *****************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create allowed command links] ***********************************
==> default: skipping: [localhost] => (item=[{'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []}, '/usr/bin/sudo'])
==> default:
==> default: TASK: [edxapp | create application user] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create edxapp user dirs] **************************************
==> default: ok: [localhost] => (item=/edx/app/edxapp)
==> default: ok: [localhost] => (item=/edx/app/edxapp/.ssh)
==> default: ok: [localhost] => (item=/edx/app/edxapp/venvs)
==> default: ok: [localhost] => (item=/edx/var/edxapp/themes)
==> default: ok: [localhost] => (item=/edx/var/edxapp/staticfiles)
==> default: ok: [localhost] => (item=/edx/var/edxapp/course_static)
==> default: changed: [localhost] => (item=/edx/var/edxapp/data)
==> default:
==> default: TASK: [edxapp | create edxapp var dir] ****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | make the course data dir] *************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create edxapp log dir] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create web-writable edxapp data dirs] *************************
==> default: changed: [localhost] => (item=/edx/var/edxapp/data)
==> default: ok: [localhost] => (item=/edx/var/edxapp/uploads)
==> default: changed: [localhost] => (item=/edx/var/edxapp/media)
==> default:
==> default: TASK: [edxapp | add ppas for current versions of nodejs] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install system packages on which LMS and CMS rely] ************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | set up edxapp .npmrc] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | create log directories for service variants] ******************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | code sandbox | Use libblas for 3gf] ***************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Use liblapac for 3gf] **************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Create edxapp sandbox user] ********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Install apparmor utils system pkg] *************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | write out apparmor code sandbox config] ********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | write out sandbox user sudoers config] *********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | start apparmor service] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | (bootstrap) load code sandbox profile] *********
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | (bootstrap) put code sandbox into aa-enforce or aa-complain mode depending on EDXAPP_SANDBOX_ENFORCE] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | setup the edxapp env] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | create edxapp configuration dir] ******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | create ssh script for git (not authenticated)] ****************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | create ssh script for git (authenticated)] ********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install read-only ssh key] ************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | set git fetch.prune to ignore deleted remote refs] ************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | checkout edx-platform repo into {{ edxapp_code_dir }}] ********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | git clean after checking out edx-platform] ********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | checkout theme] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | Updating requirement files for git mirror] ********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | gem install bundler] ******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | bundle install] ***********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | Set the npm registry] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | Set the npm registry permissions] *****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | Install edx-platform npm dependencies] ************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | install python pre-requirements] ******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | install python base-requirements] *****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | stat path="{{ post_requirements_file }}"] *********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python post-requirements] *****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python paver-requirements] ****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | stat path="{{ custom_requirements_file }}"] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python custom-requirements] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install python post-post requirements] ************************
==> default: changed: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx/github.txt)
==> default: changed: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx/local.txt)
==> default:
==> default: TASK: [edxapp | install python private requirements] **************************
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx/edx-private.txt)
==> default:
==> default: TASK: [edxapp | install python extra requirements] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install CAS attribute module] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install sandbox requirements into regular venv] ***************
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/base.txt)
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/local.txt)
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/post.txt)
==> default:
==> default: TASK: [edxapp | code sandbox | put sandbox apparmor profile in complain mode] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Install base sandbox requirements and create sandbox virtualenv] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Install sandbox requirements into sandbox venv] ***
==> default: changed: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/local.txt)
==> default: ok: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/post.txt)
==> default:
==> default: TASK: [edxapp | code sandbox | put code sandbox into aa-enforce or aa-complain mode, depending on EDXAPP_SANDBOX_ENFORCE] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | compiling all py files in the edx-platform repo] **************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | give other read permissions to the virtualenv] ****************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | openid workaround] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | get s3 one time url] ******************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | download from one time url] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | unzip the data to the data dir] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | make the course data web user writable] ***********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | create {{ item }} application config] *************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | create {{ item }} auth file] **********************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | create {{ item }} yaml application config] ********************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | create {{ item }} yaml auth file] *****************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | writing {{ item }} supervisor script] *************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | writing edxapp supervisor script] *****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | add gunicorn configuration files] *****************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | writing celery worker supervisor script] **********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | enable {{ item }} supervisor script] **************************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | enable edxapp supervisor script] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | enable celery worker supervisor script] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | create helper scripts for managing edxapp] ********************
==> default: changed: [localhost] => (item=['edxapp-migrate', 'lms'])
==> default: changed: [localhost] => (item=['edxapp-migrate', 'cms'])
==> default: changed: [localhost] => (item=['edxapp-runserver', 'lms'])
==> default: changed: [localhost] => (item=['edxapp-runserver', 'cms'])
==> default: changed: [localhost] => (item=['edxapp-syncdb', 'lms'])
==> default: changed: [localhost] => (item=['edxapp-syncdb', 'cms'])
==> default: changed: [localhost] => (item=['edxapp-update-assets', 'lms'])
==> default: changed: [localhost] => (item=['edxapp-update-assets', 'cms'])
==> default: changed: [localhost] => (item=['edxapp-shell', 'lms'])
==> default: changed: [localhost] => (item=['edxapp-shell', 'cms'])
==> default:
==> default: TASK: [edxapp | syncdb and migrate] *******************************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | gather {{ item }} static assets with paver] *******************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | remove all course data before checkout] ***********************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | make the course data updatable by the edxapp user] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | clone the xml course repo] ************************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | update course.xml] ********************************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | make symlinks for the static data] ****************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | make symlinks so code works] **********************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | import courses with nostatic flag] ****************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | import courses including static data] *************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | delete courses that were fully imported] **********************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | create an archive of course data and course static dirs] ******
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | upload archive to s3] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | remove archive from disk] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | update supervisor configuration] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | ensure edxapp has started] ************************************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | ensure edxapp_workers has started] ****************************
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'cms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'cms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'cms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'lms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'lms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'lms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high_mem', 'service_variant': 'lms', 'monitor': False, 'concurrency': 2, 'max_tasks_per_child': 1})
==> default:
==> default: TASK: [edxapp | create symlinks from the venv bin dir] ************************
==> default: ok: [localhost] => (item=python)
==> default: ok: [localhost] => (item=pip)
==> default: ok: [localhost] => (item=django-admin.py)
==> default:
==> default: TASK: [edxapp | create symlinks from the repo dir] ****************************
==> default: ok: [localhost] => (item=manage.py)
==> default:
==> default: TASK: [edxapp | remove read-only ssh key] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | get instance information] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | tag instance with edx_platform version] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | tag instance with edxapp theme version] **********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | set_fact edxapp_installed=true] *******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | restart edxapp] ***********************************************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | restart edxapp_workers] ***************************************
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'cms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'cms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'cms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'lms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'lms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'lms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high_mem', 'service_variant': 'lms', 'monitor': False, 'concurrency': 2, 'max_tasks_per_child': 1})
==> default:
==> default: TASK: [oraclejdk | download Oracle Java] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | create jvm dir] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | untar Oracle Java] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | create symlink expected by elasticsearch] ******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | update alternatives java] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | update alternatives javac] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | update alternatives javaws] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | add JAVA_HOME for Oracle Java] *****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | download elasticsearch] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | install elasticsearch from local package] **************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [elasticsearch | create directories] ************************************
==> default: ok: [localhost] => (item=/edx/var/elasticsearch)
==> default: ok: [localhost] => (item=/edx/var/log/elasticsearch)
==> default: ok: [localhost] => (item=/edx/etc/elasticsearch)
==> default:
==> default: TASK: [elasticsearch | update elasticsearch defaults] *************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [elasticsearch | drop the elasticsearch config] *************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [elasticsearch | drop the elasticsearch logging config] *****************
==> default: changed: [localhost]
==> default:
==> default: TASK: [elasticsearch | Ensure elasticsearch is enabled and started] ***********
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | Restart elastic when there has been an upgrade] ********
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_user required for role] *****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_dir required for role] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_ruby_version required for role] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv user {{ common_web_user }}] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv dir if it does not exist] *************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install build depends] *****************************************
==> default: ok: [localhost] => (item=curl,build-essential,libcurl4-openssl-dev,libreadline-dev,libssl-dev,libxml2-dev,libxslt1-dev,zlib1g-dev)
==> default:
==> default: TASK: [rbenv | update rbenv repo] *********************************************
==> default: failed: [localhost] => {"failed": true}
==> default: msg: Local modifications exist in repository (force=no).
==> default:
==> default: FATAL: all hosts have already failed -- aborting
==> default:
==> default: PLAY RECAP ********************************************************************
==> default: to retry, use: --limit @/root/vagrant-devstack.retry
==> default:
==> default: localhost : ok=240 changed=85 unreachable=0 failed=1
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
[db@mastodon:~/devstack]
% vagrant ssh 1 ↵
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '14.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
*******************************************************************
* ___ _ __ __ *
* / _ \ _ __ ___ _ _ ___ __| |\ \/ / *
* | |_| | '_ \ -_) ' \ / -_) _` | > < *
* \___/| .__/___|_|_| \___\__,_|/_/\_\ *
* |_| *
* *
* Instructions and troubleshooting: *
* https://github.com/edx/configuration/wiki/edX-Developer-Stack *
*******************************************************************
Last login: Wed Nov 19 04:07:13 2014 from 10.0.2.2
/usr/bin/xauth: file /home/vagrant/.Xauthority does not exist
vagrant@precise64:~$ ls
postinstall.sh share_x11
vagrant@precise64:~$ sudo su edxapp
vagrant@precise64:~$ ls
postinstall.sh share_x11
vagrant@precise64:~$ ls /edx
app bin etc var
vagrant@precise64:~$ ls /edx/app/
aws demo devpi edx_ansible edxapp forum ora supervisor
vagrant@precise64:~$ ls /edx/app/edxapp/
cms.auth.json cms.env.json cms_gunicorn.py data edxapp_env edx-platform lms.auth.json lms.env.json lms_gunicorn.py ruby_env themes venvs
vagrant@precise64:~$ ls -a /edx/app/edxapp/
. .bashrc cms.auth.json cms_gunicorn.py edxapp_env .gem lms.auth.json lms_gunicorn.py .npmrc .rbenv .ssh venvs
.. .cache cms.env.json data edx-platform .gitconfig lms.env.json .npm .paver_autocomplete ruby_env themes
vagrant@precise64:~$ ls -a /edx/app/edxapp/.rbenv/
. .. bin completions .gem .git .gitignore libexec LICENSE README.md shims version versions
vagrant@precise64:~$ cd /edx/app/edxapp/.rbenv/
vagrant@precise64:/edx/app/edxapp/.rbenv$ git status
# Not currently on any branch.
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gem/
#
nothing added to commit but untracked files present (use "git add" to track)
vagrant@precise64:/edx/app/edxapp/.rbenv$ cd ..
vagrant@precise64:/edx/app/edxapp$ ls
cms.auth.json cms.env.json cms_gunicorn.py data edxapp_env edx-platform lms.auth.json lms.env.json lms_gunicorn.py ruby_env themes venvs
vagrant@precise64:/edx/app/edxapp$ sudo rm -rf .rbenv/
vagrant@precise64:/edx/app/edxapp$ cd ../forum/
vagrant@precise64:/edx/app/forum$ ls
cs_comments_service forum_env forum-supervisor.sh ruby_env
vagrant@precise64:/edx/app/forum$ sudo rm -rf .rbenv/
vagrant@precise64:/edx/app/forum$ exit
logout
Connection to 127.0.0.1 closed.
[db@mastodon:~/devstack]
% vagrant provision
==> default: Running provisioner: shell...
default: Running: inline script
==> default: stdin: is not a tty
==> default:
==> default: PLAY [Configure instance(s)] **************************************************
==> default:
==> default: GATHERING FACTS ***************************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | debug var=user_info] ********************************************
==> default: ok: [localhost] => {
==> default: "var": {
==> default: "user_info": []
==> default: }
==> default: }
==> default:
==> default: TASK: [user | create the edxadmin group] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | ensure sudoers.d is read] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | grant full sudo access to the edxadmin group] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | create the users] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create .ssh directory] ******************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | assign admin role to admin users] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | get github key[s]] **********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | update the authorized_keys file] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create bashrc file for normal users] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create .profile for all users] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | modify shell for restricted users] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create bashrc file for restricted users] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create sudoers file from template] ******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [user | change home directory ownership to root for restricted users] ***
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create ~/bin directory] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create allowed command links] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | install security packages] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | update all system packages] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | configure periodic unattended-upgrades] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | disable unattended-upgrades] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | only unattended-upgrade from security repo] *****************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | disable security only updates on unattended-upgrades] *******
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check if we are vulnerable] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Apply bash security update if we are vulnerable] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check again and fail if we are still vulnerable] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | GHOST.c] ****************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | compile GHOST] **********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Check if we are vulnerable] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [security | Apply glibc security update if we are vulnerable] ***********
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | Update CA Certificates] ***************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [common | Add user www-data] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create common directories] ************************************
==> default: ok: [localhost] => (item=/edx/var)
==> default: ok: [localhost] => (item=/edx/app)
==> default: ok: [localhost] => (item=/edx/bin)
==> default: ok: [localhost] => (item=/edx/etc)
==> default:
==> default: TASK: [common | check if instance is vagrant] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Add git apt repository] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install role-independent useful system packages] **************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create common log directory] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | upload sudo config for key forwarding as root] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | pip install virtualenv] ***************************************
==> default: ok: [localhost] => (item=pip==1.5.6)
==> default: ok: [localhost] => (item=setuptools==3.6)
==> default: ok: [localhost] => (item=virtualenv==1.11.6)
==> default: ok: [localhost] => (item=virtualenvwrapper)
==> default:
==> default: TASK: [common | Install rsyslog configuration for edX] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Remove the default rsyslog configuration] *********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Create hourly subdirectory in logrotate.d] ********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install logrotate configuration for edX] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Install logrotate configuration for tracking file] ************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | Add logrotate for tracking.log to cron.hourly] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | update /etc/hosts] ********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update /etc/hostname] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | run hostname] *************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | update /etc/dhcp/dhclient.conf] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [common | add ssh-warning banner motd] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [common | update ssh config] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | gather ec2 facts for use in other roles] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | shell /sbin/ifconfig eth0 mtu 1500 up
==> default: ] **************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | lineinfile dest=/etc/dhcp/dhclient.conf regexp="^supercede interfact-mtu" line="supercede interface-mtu 1500;" insertbefore="^request"
==> default: ] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | create all service directories] **********************************
==> default: ok: [localhost] => (item={'key': 'home', 'value': {'owner': 'root', 'path': u'/edx/app/aws', 'group': 'root', 'mode': '0755'}})
==> default: ok: [localhost] => (item={'key': 'data', 'value': {'owner': 'root', 'path': u'/edx/var/aws', 'group': 'root', 'mode': '0700'}})
==> default: ok: [localhost] => (item={'key': 'logs', 'value': {'owner': 'syslog', 'path': u'/edx/var/log/aws', 'group': 'syslog', 'mode': '0650'}})
==> default:
==> default: TASK: [aws | install system packages] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | install aws python packages] *************************************
==> default: ok: [localhost] => (item=https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz)
==> default: ok: [localhost] => (item=awscli==1.4.2)
==> default: ok: [localhost] => (item=boto=="2.34.0")
==> default:
==> default: TASK: [aws | get s3cmd] *******************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | untar s3cmd] *****************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [aws | create symlink for s3cmd] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [aws | create s3 log sync script] ***************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | create symlink for s3 log sync script] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | force logrotate on supervisor stop] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | cronjob for s3 log sync] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [aws | update the ssh motd on Ubuntu] ***********************************
==> default: skipping: [localhost] => (item=/etc/update-motd.d/10-help-text)
==> default: skipping: [localhost] => (item=/usr/share/landscape/landscape-sysinfo.wrapper)
==> default: skipping: [localhost] => (item=/etc/update-motd.d/51-cloudguest)
==> default: skipping: [localhost] => (item=/etc/update-motd.d/91-release-upgrade)
==> default:
==> default: TASK: [edx_ansible | create application user] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create edx_ansible app and venv dir] *********************
==> default: ok: [localhost] => (item=/edx/app/edx_ansible)
==> default: ok: [localhost] => (item=/edx/var/edx_ansible)
==> default: ok: [localhost] => (item=/edx/app/edx_ansible/venvs)
==> default:
==> default: TASK: [edx_ansible | install a bunch of system packages on which edx_ansible relies] ***
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | git checkout edx_ansible repo into edx_ansible_code_dir] ***
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | install edx_ansible venv requirements] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create update script] ************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create a symlink for update.sh] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create a symlink for ansible-playbook] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edx_ansible | create a symlink for the playbooks dir] ******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install ppa key] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install apt repository] *************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | look for mysql 5.5] *****************************************
==> default: failed: [localhost] => {"changed": true, "cmd": "dpkg -L mysql-server-5.5", "delta": "0:00:00.019871", "end": "2015-07-01 19:28:39.774435", "rc": 1, "start": "2015-07-01 19:28:39.754564", "warnings": []}
==> default: stderr: Package `mysql-server-5.5' is not installed.
==> default: Use dpkg --info (= dpkg-deb --info) to examine archive files,
==> default: and dpkg --contents (= dpkg-deb --contents) to list their contents.
==> default: ...ignoring
==> default:
==> default: TASK: [edxlocal | stop mysql] *************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | remove prior version of mysql] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | install mysql 56 and dependencies] **************************
==> default: ok: [localhost] => (item=software-properties-common,mysql-server)
==> default:
==> default: TASK: [edxlocal | start mysql] ************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install packages needed for single server] ******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the edxapp db user] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for edxapp] *******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the xqueue db user] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for xqueue] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the ora db user] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for ora] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create databases for analytics api] *************************
==> default: ok: [localhost] => (item=analytics-api)
==> default: ok: [localhost] => (item=reports)
==> default:
==> default: TASK: [edxlocal | create database for insights] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create database for ecommerce] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | setup users for ecommerce] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create api user for the analytics api] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | create read-only reports user for the analytics-api] ********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the edx-notes-api db user] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | create a database for edx-notes-api] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the migration db user] ********************************
==> default: ok: [localhost] => (item=edxapp)
==> default: skipping: [localhost] => (item=None)
==> default: ok: [localhost] => (item=ora)
==> default: skipping: [localhost] => (item=None)
==> default: ok: [localhost] => (item=analytics-api)
==> default: ok: [localhost] => (item=reports)
==> default: skipping: [localhost] => (item=None)
==> default: skipping: [localhost] => (item=None)
==> default:
==> default: TASK: [edxlocal | setup the read-only db user] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | setup the admin db user] ************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxlocal | install memcached] ******************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | check to see that MongoDB 2.4 is not installed] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | verify 2.4 not installed] **************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | remove mongo 2.4 if present] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | install python pymongo for mongo_user ansible module] **********
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | add the mongodb signing key] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | add the mongodb repo to the sources list] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | install mongo server and recommends] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | create mongo dirs] *********************************************
==> default: ok: [localhost] => (item=/edx/var/mongo)
==> default: ok: [localhost] => (item=/edx/var/mongo/mongodb)
==> default: ok: [localhost] => (item=/edx/var/log/mongo)
==> default:
==> default: TASK: [mongo | stop mongod service] *******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | move mongodb to {{ mongo_data_dir }}] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | copy mongodb key file] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | copy configuration template] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | start mongo service] *******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | wait for mongo server to start] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [mongo | drop super user script] ****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | create super user with js] *************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | delete super user script] **************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [mongo | Create the file to initialize the mongod replica set] **********
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | Initialize the replication set] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | create a mongodb user] *****************************************
==> default: ok: [localhost] => (item={'password': 'password', 'user': 'cs_comments_service', 'roles': 'readWrite', 'database': 'cs_comments_service'})
==> default: ok: [localhost] => (item={'password': 'password', 'user': 'edxapp', 'roles': 'readWrite', 'database': 'edxapp'})
==> default:
==> default: TASK: [mongo | create a mongodb user] *****************************************
==> default: skipping: [localhost] => (item={'password': 'password', 'user': 'cs_comments_service', 'roles': 'readWrite', 'database': 'cs_comments_service'})
==> default: skipping: [localhost] => (item={'password': 'password', 'user': 'edxapp', 'roles': 'readWrite', 'database': 'edxapp'})
==> default:
==> default: TASK: [mongo | install s3cmd] *************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | configure s3cmd] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | install backup-mongo-to-s3 script] *****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [mongo | schedule backup-mongo-to-3s crontab] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp_common | Install system packages] *******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create application user] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor service user] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/app/supervisor)
==> default: ok: [localhost] => (item=/edx/app/supervisor/venvs/supervisor)
==> default:
==> default: TASK: [supervisor | create service user accessible dirs] **********************
==> default: ok: [localhost] => (item=/edx/app/supervisor/conf.d)
==> default: ok: [localhost] => (item=/edx/app/supervisor/conf.available.d)
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/var/supervisor)
==> default: ok: [localhost] => (item=/edx/var/log/supervisor)
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost] => (item=boto=="2.34.0")
==> default: ok: [localhost] => (item=python-simple-hipchat)
==> default:
==> default: TASK: [supervisor | create supervisor upstart job] ****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create pre_supervisor upstart job] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | write the pre_suprevisor python script] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor master config] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisortctl] **********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisor cfg] **********************
==> default: ok: [localhost] => (item=/edx/app/supervisor/supervisord.conf)
==> default: ok: [localhost] => (item=/edx/app/supervisor/conf.d)
==> default:
==> default: TASK: [supervisor | create helper script for running supervisor] **************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | start supervisor] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | wait for web port to be available] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | update supervisor configuration] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_user required for role] *****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_dir required for role] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_ruby_version required for role] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv user {{ edxapp_user }}] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv dir if it does not exist] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | install build depends] *****************************************
==> default: ok: [localhost] => (item=curl,build-essential,libcurl4-openssl-dev,libreadline-dev,libssl-dev,libxml2-dev,libxslt1-dev,zlib1g-dev)
==> default:
==> default: TASK: [rbenv | update rbenv repo] *********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | ensure ruby_env exists] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | check ruby-build installed] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | if ruby-build exists, which versions we can install] ***********
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | create temporary directory] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | clone ruby-build repo] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install ruby-build] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | remove temporary directory] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | check ruby {{ edxapp_ruby_version }} installed] ****************
==> default: failed: [localhost] => {"changed": true, "cmd": "rbenv versions | grep 1.9.3-p374", "delta": "0:00:00.042468", "end": "2015-07-01 19:28:59.210919", "rc": 1, "start": "2015-07-01 19:28:59.168451", "warnings": []}
==> default: ...ignoring
==> default:
==> default: TASK: [rbenv | install ruby {{ edxapp_ruby_version }}] ************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | set global ruby {{ edxapp_ruby_version }}] *********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install bundler] ***********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | remove rbenv version of rake] **********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install rake gem] **********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | rehash] ********************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [supervisor | create application user] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor service user] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/app/devpi/supervisor)
==> default: ok: [localhost] => (item=/edx/app/devpi/venvs/supervisor)
==> default:
==> default: TASK: [supervisor | create service user accessible dirs] **********************
==> default: ok: [localhost] => (item=/edx/app/devpi/supervisor/conf.d)
==> default: ok: [localhost] => (item=/edx/app/devpi/supervisor/conf.available.d)
==> default:
==> default: TASK: [supervisor | create supervisor directories] ****************************
==> default: ok: [localhost] => (item=/edx/var/devpi/supervisor)
==> default: ok: [localhost] => (item=/edx/var/log/devpi/supervisor)
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | install supervisor in its venv] ***************************
==> default: ok: [localhost] => (item=boto=="2.34.0")
==> default: ok: [localhost] => (item=python-simple-hipchat)
==> default:
==> default: TASK: [supervisor | create supervisor upstart job] ****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create pre_supervisor upstart job] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | write the pre_suprevisor python script] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create supervisor master config] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisortctl] **********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | create a symlink for supervisor cfg] **********************
==> default: skipping: [localhost] => (item=/edx/app/devpi/supervisor/supervisord.conf)
==> default: skipping: [localhost] => (item=/edx/app/devpi/supervisor/conf.d)
==> default:
==> default: TASK: [supervisor | create helper script for running supervisor] **************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | start supervisor] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [supervisor | wait for web port to be available] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [supervisor | update supervisor configuration] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create devpi user] *********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create devpi application directories] **************************
==> default: ok: [localhost] => (item=/edx/app/devpi)
==> default: ok: [localhost] => (item=/edx/app/devpi/venvs/devpi)
==> default:
==> default: TASK: [devpi | create the devpi data directory, needs write access by the service user] ***
==> default: ok: [localhost] => (item=/edx/var/devpi)
==> default: ok: [localhost] => (item=/edx/var/devpi/data)
==> default:
==> default: TASK: [devpi | install devpi pip pkgs] ****************************************
==> default: ok: [localhost] => (item=devpi-server)
==> default: ok: [localhost] => (item=eventlet)
==> default:
==> default: TASK: [devpi | writing supervisor script] *************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create a symlink for venv python, pip] *************************
==> default: ok: [localhost] => (item=python)
==> default: ok: [localhost] => (item=pip)
==> default:
==> default: TASK: [devpi | create a symlink for venv supervisor] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | create a symlink for supervisor config] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | update devpi supervisor configuration] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [devpi | ensure devpi is started] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [nltk | Install unzip] **************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [nltk | create the nltk data directory and subdirectories] **************
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/taggers/maxent_treebank_pos_tagger.zip', 'path': 'taggers/maxent_treebank_pos_tagger'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/stopwords.zip', 'path': 'corpora/stopwords'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/wordnet.zip', 'path': 'corpora/wordnet'})
==> default:
==> default: TASK: [nltk | download nltk data] *********************************************
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/taggers/maxent_treebank_pos_tagger.zip', 'path': 'taggers/maxent_treebank_pos_tagger'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/stopwords.zip', 'path': 'corpora/stopwords'})
==> default: ok: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/wordnet.zip', 'path': 'corpora/wordnet'})
==> default:
==> default: TASK: [nltk | unarchive nltk data] ********************************************
==> default: skipping: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/taggers/maxent_treebank_pos_tagger.zip', 'path': 'taggers/maxent_treebank_pos_tagger'})
==> default: skipping: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/stopwords.zip', 'path': 'corpora/stopwords'})
==> default: skipping: [localhost] => (item={'url': 'http://nltk.github.com/nltk_data/packages/corpora/wordnet.zip', 'path': 'corpora/wordnet'})
==> default:
==> default: TASK: [user | debug var=user_info] ********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create the edxadmin group] **************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | ensure sudoers.d is read] ***************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | grant full sudo access to the edxadmin group] *******************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | create the users] ***********************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create .ssh directory] ******************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | assign admin role to admin users] *******************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | get github key[s]] **********************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | update the authorized_keys file] ********************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create bashrc file for normal users] ****************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create .profile for all users] **********************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | modify shell for restricted users] ******************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create bashrc file for restricted users] ************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create sudoers file from template] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [user | change home directory ownership to root for restricted users] ***
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create ~/bin directory] *****************************************
==> default: skipping: [localhost] => (item={'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []})
==> default:
==> default: TASK: [user | create allowed command links] ***********************************
==> default: skipping: [localhost] => (item=[{'sudo_cmds': [u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms migrate *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp cms syncdb *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms seed_permissions_roles *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms set_staff *', u'ALL=(www-data) NOPASSWD:SETENV:/edx/bin/python.edxapp /edx/bin/manage.edxapp lms transfer_students *'], 'type': 'restricted', 'name': u'automator', 'authorized_keys': []}, '/usr/bin/sudo'])
==> default:
==> default: TASK: [edxapp | create application user] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create edxapp user dirs] **************************************
==> default: ok: [localhost] => (item=/edx/app/edxapp)
==> default: ok: [localhost] => (item=/edx/app/edxapp/.ssh)
==> default: ok: [localhost] => (item=/edx/app/edxapp/venvs)
==> default: ok: [localhost] => (item=/edx/var/edxapp/themes)
==> default: ok: [localhost] => (item=/edx/var/edxapp/staticfiles)
==> default: ok: [localhost] => (item=/edx/var/edxapp/course_static)
==> default: changed: [localhost] => (item=/edx/var/edxapp/data)
==> default:
==> default: TASK: [edxapp | create edxapp var dir] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | make the course data dir] *************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create edxapp log dir] ****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create web-writable edxapp data dirs] *************************
==> default: changed: [localhost] => (item=/edx/var/edxapp/data)
==> default: ok: [localhost] => (item=/edx/var/edxapp/uploads)
==> default: ok: [localhost] => (item=/edx/var/edxapp/media)
==> default:
==> default: TASK: [edxapp | add ppas for current versions of nodejs] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install system packages on which LMS and CMS rely] ************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | set up edxapp .npmrc] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | create log directories for service variants] ******************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | code sandbox | Use libblas for 3gf] ***************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Use liblapac for 3gf] **************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Create edxapp sandbox user] ********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Install apparmor utils system pkg] *************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | write out apparmor code sandbox config] ********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | write out sandbox user sudoers config] *********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | start apparmor service] ************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | (bootstrap) load code sandbox profile] *********
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | (bootstrap) put code sandbox into aa-enforce or aa-complain mode depending on EDXAPP_SANDBOX_ENFORCE] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | setup the edxapp env] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create edxapp configuration dir] ******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create ssh script for git (not authenticated)] ****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create ssh script for git (authenticated)] ********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install read-only ssh key] ************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | set git fetch.prune to ignore deleted remote refs] ************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | checkout edx-platform repo into {{ edxapp_code_dir }}] ********
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | git clean after checking out edx-platform] ********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | checkout theme] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | Updating requirement files for git mirror] ********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | gem install bundler] ******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | bundle install] ***********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | Set the npm registry] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | Set the npm registry permissions] *****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | Install edx-platform npm dependencies] ************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | install python pre-requirements] ******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python base-requirements] *****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | stat path="{{ post_requirements_file }}"] *********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python post-requirements] *****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python paver-requirements] ****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | stat path="{{ custom_requirements_file }}"] *******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | install python custom-requirements] ***************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install python post-post requirements] ************************
==> default: changed: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx/github.txt)
==> default: changed: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx/local.txt)
==> default:
==> default: TASK: [edxapp | install python private requirements] **************************
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx/edx-private.txt)
==> default:
==> default: TASK: [edxapp | install python extra requirements] ****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install CAS attribute module] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | install sandbox requirements into regular venv] ***************
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/base.txt)
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/local.txt)
==> default: skipping: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/post.txt)
==> default:
==> default: TASK: [edxapp | code sandbox | put sandbox apparmor profile in complain mode] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Install base sandbox requirements and create sandbox virtualenv] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | code sandbox | Install sandbox requirements into sandbox venv] ***
==> default: changed: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/local.txt)
==> default: ok: [localhost] => (item=/edx/app/edxapp/edx-platform/requirements/edx-sandbox/post.txt)
==> default:
==> default: TASK: [edxapp | code sandbox | put code sandbox into aa-enforce or aa-complain mode, depending on EDXAPP_SANDBOX_ENFORCE] ***
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | compiling all py files in the edx-platform repo] **************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | give other read permissions to the virtualenv] ****************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | openid workaround] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [edxapp | get s3 one time url] ******************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | download from one time url] ***********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | unzip the data to the data dir] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | make the course data web user writable] ***********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | create {{ item }} application config] *************************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | create {{ item }} auth file] **********************************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | create {{ item }} yaml application config] ********************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | create {{ item }} yaml auth file] *****************************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | writing {{ item }} supervisor script] *************************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | writing edxapp supervisor script] *****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | add gunicorn configuration files] *****************************
==> default: ok: [localhost] => (item=lms)
==> default: ok: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | writing celery worker supervisor script] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | enable {{ item }} supervisor script] **************************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | enable edxapp supervisor script] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | enable celery worker supervisor script] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | create helper scripts for managing edxapp] ********************
==> default: ok: [localhost] => (item=['edxapp-migrate', 'lms'])
==> default: ok: [localhost] => (item=['edxapp-migrate', 'cms'])
==> default: ok: [localhost] => (item=['edxapp-runserver', 'lms'])
==> default: ok: [localhost] => (item=['edxapp-runserver', 'cms'])
==> default: ok: [localhost] => (item=['edxapp-syncdb', 'lms'])
==> default: ok: [localhost] => (item=['edxapp-syncdb', 'cms'])
==> default: ok: [localhost] => (item=['edxapp-update-assets', 'lms'])
==> default: ok: [localhost] => (item=['edxapp-update-assets', 'cms'])
==> default: ok: [localhost] => (item=['edxapp-shell', 'lms'])
==> default: ok: [localhost] => (item=['edxapp-shell', 'cms'])
==> default:
==> default: TASK: [edxapp | syncdb and migrate] *******************************************
==> default: changed: [localhost] => (item=lms)
==> default: changed: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | gather {{ item }} static assets with paver] *******************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | remove all course data before checkout] ***********************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | make the course data updatable by the edxapp user] ************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | clone the xml course repo] ************************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | update course.xml] ********************************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | make symlinks for the static data] ****************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | make symlinks so code works] **********************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | import courses with nostatic flag] ****************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | import courses including static data] *************************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | delete courses that were fully imported] **********************
==> default: skipping: [localhost] => (item=EDXAPP_XML_COURSES)
==> default:
==> default: TASK: [edxapp | create an archive of course data and course static dirs] ******
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | upload archive to s3] *****************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | remove archive from disk] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | update supervisor configuration] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | ensure edxapp has started] ************************************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | ensure edxapp_workers has started] ****************************
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'cms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'cms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'cms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'lms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'lms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'lms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high_mem', 'service_variant': 'lms', 'monitor': False, 'concurrency': 2, 'max_tasks_per_child': 1})
==> default:
==> default: TASK: [edxapp | create symlinks from the venv bin dir] ************************
==> default: ok: [localhost] => (item=python)
==> default: ok: [localhost] => (item=pip)
==> default: ok: [localhost] => (item=django-admin.py)
==> default:
==> default: TASK: [edxapp | create symlinks from the repo dir] ****************************
==> default: ok: [localhost] => (item=manage.py)
==> default:
==> default: TASK: [edxapp | remove read-only ssh key] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | get instance information] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | tag instance with edx_platform version] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | tag instance with edxapp theme version] **********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edxapp | set_fact edxapp_installed=true] *******************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [edxapp | restart edxapp] ***********************************************
==> default: skipping: [localhost] => (item=lms)
==> default: skipping: [localhost] => (item=cms)
==> default:
==> default: TASK: [edxapp | restart edxapp_workers] ***************************************
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'cms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'cms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'cms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'low', 'service_variant': 'lms', 'monitor': True, 'concurrency': 1})
==> default: skipping: [localhost] => (item={'queue': 'default', 'service_variant': 'lms', 'monitor': True, 'concurrency': 3})
==> default: skipping: [localhost] => (item={'queue': 'high', 'service_variant': 'lms', 'monitor': True, 'concurrency': 4})
==> default: skipping: [localhost] => (item={'queue': 'high_mem', 'service_variant': 'lms', 'monitor': False, 'concurrency': 2, 'max_tasks_per_child': 1})
==> default:
==> default: TASK: [oraclejdk | download Oracle Java] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | create jvm dir] ********************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | untar Oracle Java] *****************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | create symlink expected by elasticsearch] ******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | update alternatives java] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | update alternatives javac] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | update alternatives javaws] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [oraclejdk | add JAVA_HOME for Oracle Java] *****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | download elasticsearch] ********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | install elasticsearch from local package] **************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [elasticsearch | create directories] ************************************
==> default: ok: [localhost] => (item=/edx/var/elasticsearch)
==> default: ok: [localhost] => (item=/edx/var/log/elasticsearch)
==> default: ok: [localhost] => (item=/edx/etc/elasticsearch)
==> default:
==> default: TASK: [elasticsearch | update elasticsearch defaults] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | drop the elasticsearch config] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | drop the elasticsearch logging config] *****************
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | Ensure elasticsearch is enabled and started] ***********
==> default: ok: [localhost]
==> default:
==> default: TASK: [elasticsearch | Restart elastic when there has been an upgrade] ********
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_user required for role] *****************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_dir required for role] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | fail rbenv_ruby_version required for role] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv user {{ common_web_user }}] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [rbenv | create rbenv dir if it does not exist] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [rbenv | install build depends] *****************************************
==> default: ok: [localhost] => (item=curl,build-essential,libcurl4-openssl-dev,libreadline-dev,libssl-dev,libxml2-dev,libxslt1-dev,zlib1g-dev)
==> default:
==> default: TASK: [rbenv | update rbenv repo] *********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | ensure ruby_env exists] ****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | check ruby-build installed] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | if ruby-build exists, which versions we can install] ***********
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | create temporary directory] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | clone ruby-build repo] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install ruby-build] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | remove temporary directory] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | check ruby {{ forum_ruby_version }} installed] *****************
==> default: failed: [localhost] => {"changed": true, "cmd": "rbenv versions | grep 1.9.3-p448", "delta": "0:00:00.043649", "end": "2015-07-01 19:35:53.952578", "rc": 1, "start": "2015-07-01 19:35:53.908929", "warnings": []}
==> default: ...ignoring
==> default:
==> default: TASK: [rbenv | install ruby {{ forum_ruby_version }}] *************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | set global ruby {{ forum_ruby_version }}] **********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install bundler] ***********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | remove rbenv version of rake] **********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | install rake gem] **********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [rbenv | rehash] ********************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [forum | create application user] ***************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [forum | create forum app dir] ******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [forum | setup the forum env] *******************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [forum | create {{ forum_data_dir }}] ***********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [forum | create the supervisor config] **********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [forum | enable the supervisor config] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [forum | create the supervisor wrapper] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [forum | git checkout forum repo into {{ forum_code_dir }}] *************
==> default: ok: [localhost]
==> default:
==> default: TASK: [forum | install comments service bundle] *******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [forum | update supervisor configuration] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [forum | ensure forum is started] ***************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [forum | test that the required service are listening] ******************
==> default: skipping: [localhost] => (item={'host': u'localhost', 'port': u'9200', 'service': 'elasticsearch'})
==> default:
==> default: TASK: [forum | test that mongo replica set members are listing] ***************
==> default: skipping: [localhost] => (item=localhost)
==> default:
==> default: TASK: [forum | get instance information] **************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [forum | tag instance] **************************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [forum | set_fact forum_installed=true] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [notifier | install notifier specific system packages] ******************
==> default: ok: [localhost]
==> default:
==> default: TASK: [notifier | check if incommon ca is installed] **************************
==> default: failed: [localhost] => {"changed": true, "cmd": ["test", "-e", "/usr/share/ca-certificates/incommon/InCommonServerCA.crt"], "delta": "0:00:00.003562", "end": "2015-07-01 19:40:14.567565", "rc": 1, "start": "2015-07-01 19:40:14.564003", "warnings": []}
==> default: ...ignoring
==> default:
==> default: TASK: [notifier | create incommon ca directory] *******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | retrieve incommon server CA] ********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | add InCommon ca cert] ***************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | update ca certs globally] ***********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create notifier user {{ notifier_user }}] *******************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create notifier app dir] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | setup the notifier env] *************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | drop a bash_profile] ****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | ensure .bashrc exists] **************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | add source of notifier_env to .bashrc] **********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | add source venv to .bashrc] *********************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create notifier DB directory] *******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create notifier/bin directory] ******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create notifier/.ssh directory] *****************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create service log dir] *************************************
==> default: changed: [localhost] => (item=/edx/var/log/notifier)
==> default:
==> default: TASK: [notifier | write supervisord wrapper for celery workers] ***************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | write supervisord wrapper for scheduler] ********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | write supervisord config for celery workers] ****************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | write supervisord config for scheduler] *********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | enable supervisord config for celery workers] ***************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [notifier | enable supervisord config for scheduler] ********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [notifier | checkout code] **********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create ssh script for git (not authenticated)] **************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | create ssh script for git (authenticated)] ******************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [notifier | install read-only ssh key] **********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [notifier | checkout theme] *********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [notifier | write notifier local settings] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [notifier | source repo group perms] ************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | install application requirements] ***************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | fix permissions on notifer db file] *************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [notifier | syncdb] *****************************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [browsers | install system packages] ************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | download browser debian packages from S3] *******************
==> default: changed: [localhost] => (item={'url': 'https://s3.amazonaws.com/vagrant.testeng.edx.org/google-chrome-stable_30.0.1599.114-1_amd64.deb', 'name': 'google-chrome-stable_30.0.1599.114-1_amd64.deb'})
==> default: changed: [localhost] => (item={'url': 'https://s3.amazonaws.com/vagrant.testeng.edx.org/firefox_28.0%2Bbuild2-0ubuntu0.12.04.1_amd64.deb', 'name': 'firefox_28.0+build2-0ubuntu0.12.04.1_amd64.deb'})
==> default:
==> default: TASK: [browsers | install browser debian packages] ****************************
==> default: changed: [localhost] => (item={'url': 'https://s3.amazonaws.com/vagrant.testeng.edx.org/google-chrome-stable_30.0.1599.114-1_amd64.deb', 'name': 'google-chrome-stable_30.0.1599.114-1_amd64.deb'})
==> default: changed: [localhost] => (item={'url': 'https://s3.amazonaws.com/vagrant.testeng.edx.org/firefox_28.0%2Bbuild2-0ubuntu0.12.04.1_amd64.deb', 'name': 'firefox_28.0+build2-0ubuntu0.12.04.1_amd64.deb'})
==> default:
==> default: TASK: [browsers | download ChromeDriver] **************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | unzip ChromeDriver tarfile] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsers | move ChromeDriver binary to /usr/local] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsers | make ChromeDriver binary executable] ************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsers | verify ChromeDriver location and mode] **********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | assert ] ****************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | download PhantomJS] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [browsers | unpack the PhantomJS tarfile] *******************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [browsers | move PhantomJS binary to /usr/local] ************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [browsers | verify phantomjs location] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | assert ] ****************************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | create xvfb upstart script] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsers | start xvfb] *************************************************
==> default: failed: [localhost] => {"changed": true, "cmd": "start xvfb", "delta": "0:00:00.005832", "end": "2015-07-01 19:41:31.970851", "rc": 1, "start": "2015-07-01 19:41:31.965019", "warnings": []}
==> default: stderr: start: Job is already running: xvfb
==> default: ...ignoring
==> default:
==> default: TASK: [browsermob-proxy | get zip file] ***************************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [browsermob-proxy | unzip into /var/tmp/] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsermob-proxy | move to /etc/browsermob-proxy/] *********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsermob-proxy | change permissions of main script] ******************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsermob-proxy | add wrapper script /usr/local/bin/browsermob-proxy] ***
==> default: skipping: [localhost]
==> default:
==> default: TASK: [browsermob-proxy | change permissions of wrapper script] ***************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [jscover | Download JSCover] ********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [jscover | Unzip JSCover] ***********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [jscover | Install JSCover JAR] *****************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [jscover | Set JSCover permissions] *************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [local_dev | install useful system packages] ****************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [local_dev | set login shell for app accounts] **************************
==> default: changed: [localhost] => (item={'repo': 'edx-platform', 'home': u'/edx/app/edxapp', 'user': u'edxapp', 'env': 'edxapp_env'})
==> default: changed: [localhost] => (item={'repo': 'cs_comments_service', 'home': u'/edx/app/forum', 'user': u'forum', 'env': 'forum_env'})
==> default: ok: [localhost] => (item={'repo': 'ora', 'home': u'/edx/app/ora', 'user': u'ora', 'env': 'ora_env'})
==> default: changed: [localhost] => (item={'repo': '', 'home': u'/edx/app/notifier', 'user': u'notifier', 'env': 'notifier_env'})
==> default:
==> default: TASK: [local_dev | add forum user to www-data group] **************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [local_dev | set forum rbenv and gem permissions] ***********************
==> default: changed: [localhost] => (item=/edx/app/forum/.gem)
==> default: changed: [localhost] => (item=/edx/app/forum/.rbenv)
==> default:
==> default: TASK: [local_dev | create login scripts] **************************************
==> default: changed: [localhost] => (item={'repo': 'edx-platform', 'home': u'/edx/app/edxapp', 'user': u'edxapp', 'env': 'edxapp_env'})
==> default: changed: [localhost] => (item={'repo': 'cs_comments_service', 'home': u'/edx/app/forum', 'user': u'forum', 'env': 'forum_env'})
==> default: changed: [localhost] => (item={'repo': 'ora', 'home': u'/edx/app/ora', 'user': u'ora', 'env': 'ora_env'})
==> default: changed: [localhost] => (item={'repo': '', 'home': u'/edx/app/notifier', 'user': u'notifier', 'env': 'notifier_env'})
==> default:
==> default: TASK: [local_dev | configure git] *********************************************
==> default: changed: [localhost] => (item={'repo': 'edx-platform', 'home': u'/edx/app/edxapp', 'user': u'edxapp', 'env': 'edxapp_env'})
==> default: ok: [localhost] => (item={'repo': 'cs_comments_service', 'home': u'/edx/app/forum', 'user': u'forum', 'env': 'forum_env'})
==> default: changed: [localhost] => (item={'repo': 'ora', 'home': u'/edx/app/ora', 'user': u'ora', 'env': 'ora_env'})
==> default: changed: [localhost] => (item={'repo': '', 'home': u'/edx/app/notifier', 'user': u'notifier', 'env': 'notifier_env'})
==> default:
==> default: TASK: [local_dev | preserve DISPLAY for sudo] *********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [local_dev | login share X11 auth to app users] *************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [local_dev | update bashrc with X11 share script] ***********************
==> default: ok: [localhost]
==> default:
==> default: TASK: [local_dev | add paver autocomplete] ************************************
==> default: ok: [localhost] => (item={'repo': 'edx-platform', 'home': u'/edx/app/edxapp', 'user': u'edxapp', 'env': 'edxapp_env'})
==> default: ok: [localhost] => (item={'repo': 'cs_comments_service', 'home': u'/edx/app/forum', 'user': u'forum', 'env': 'forum_env'})
==> default: changed: [localhost] => (item={'repo': 'ora', 'home': u'/edx/app/ora', 'user': u'ora', 'env': 'ora_env'})
==> default: changed: [localhost] => (item={'repo': '', 'home': u'/edx/app/notifier', 'user': u'notifier', 'env': 'notifier_env'})
==> default:
==> default: TASK: [local_dev | add preview.localhost to /etc/hosts] ***********************
==> default: changed: [localhost]
==> default:
==> default: TASK: [demo | create demo app and data dirs] **********************************
==> default: ok: [localhost]
==> default:
==> default: TASK: [demo | check out the demo course] **************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [demo | import demo course] *********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [demo | create some test users and enroll them in the course] ***********
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'honor'})
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'audit'})
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'verified'})
==> default:
==> default: TASK: [demo | create staff user] **********************************************
==> default: changed: [localhost]
==> default:
==> default: TASK: [demo | add test users to the certificate whitelist] ********************
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'honor'})
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'audit'})
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'verified'})
==> default:
==> default: TASK: [demo | seed the forums for the demo course] ****************************
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'honor'})
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'audit'})
==> default: changed: [localhost] => (item={'password': 'edx', 'email': '[email protected]', 'mode': 'verified'})
==> default:
==> default: TASK: [edx_service | create application user] *********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_service | create edx_service app, venv, data, and staticfiles dirs] ***
==> default: skipping: [localhost]
==> default: skipping: [localhost] => (item=venvs)
==> default: skipping: [localhost] => (item=data)
==> default: skipping: [localhost] => (item=staticfiles)
==> default:
==> default: TASK: [edx_service | create /edx/var and /edx/etc dirs] ***********************
==> default: skipping: [localhost] => (item=/edx/var)
==> default: skipping: [localhost] => (item=/edx/etc)
==> default:
==> default: TASK: [edx_service | create edx_service log dir] ******************************
==> default: skipping: [localhost] => (item=/edx/var/log/analytics_api)
==> default:
==> default: TASK: [edx_service | write out app config file] *******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_service | install a bunch of system packages on which edx_service relies] ***
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_service | install a bunch of system packages on which edx_service relies] ***
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_service | set git fetch.prune to ignore deleted remote refs] *******
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_service | validate git protocol] ***********************************
==> default: skipping: [localhost] => (item={'REPO': 'edx-analytics-data-api.git', 'DOMAIN': u'github.com', 'VERSION': u'master', 'PROTOCOL': u'https', 'PATH': u'edx', 'DESTINATION': u'/edx/app/analytics_api/analytics_api', 'SSH_KEY': None})
==> default:
==> default: TASK: [edx_service | install read-only ssh key] *******************************
==> default: skipping: [localhost] => (item={'REPO': 'edx-analytics-data-api.git', 'DOMAIN': u'github.com', 'VERSION': u'master', 'PROTOCOL': u'https', 'PATH': u'edx', 'DESTINATION': u'/edx/app/analytics_api/analytics_api', 'SSH_KEY': None})
==> default:
==> default: TASK: [edx_service | checkout code over ssh] **********************************
==> default: skipping: [localhost] => (item={'REPO': 'edx-analytics-data-api.git', 'DOMAIN': u'github.com', 'VERSION': u'master', 'PROTOCOL': u'https', 'PATH': u'edx', 'DESTINATION': u'/edx/app/analytics_api/analytics_api', 'SSH_KEY': None})
==> default:
==> default: TASK: [edx_service | checkout code over https] ********************************
==> default: skipping: [localhost] => (item={'REPO': 'edx-analytics-data-api.git', 'DOMAIN': u'github.com', 'VERSION': u'master', 'PROTOCOL': u'https', 'PATH': u'edx', 'DESTINATION': u'/edx/app/analytics_api/analytics_api', 'SSH_KEY': None})
==> default:
==> default: TASK: [edx_service | get instance information] ********************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [edx_service | tag instance] ********************************************
==> default: skipping: [localhost] => (item=[{'REPO': 'edx-analytics-data-api.git', 'DOMAIN': u'github.com', 'VERSION': u'master', 'PROTOCOL': u'https', 'PATH': u'edx', 'DESTINATION': u'/edx/app/analytics_api/analytics_api', 'SSH_KEY': None}, {u'skipped': True, u'changed': False}])
==> default:
==> default: TASK: [analytics_api | setup the analytics_api env file] **********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | add gunicorn configuration file] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | install application requirements] **********************
==> default: skipping: [localhost] => (item=base.txt)
==> default: skipping: [localhost] => (item=production.txt)
==> default: skipping: [localhost] => (item=optional.txt)
==> default:
==> default: TASK: [analytics_api | migrate] ***********************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | run collectstatic] *************************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | create api users] **************************************
==> default: skipping: [localhost] => (item={'key': 'dummy-api-user', 'value': 'changeme'})
==> default:
==> default: TASK: [analytics_api | write out the supervisor wrapper] **********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | write supervisord config] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | enable supervisor script] ******************************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | update supervisor configuration] ***********************
==> default: skipping: [localhost]
==> default:
==> default: TASK: [analytics_api | create symlinks from the venv bin dir] *****************
==> default: skipping: [localhost] => (item=python)
==> default: skipping: [localhost] => (item=pip)
==> default: skipping: [localhost] => (item=django-admin.py)
==> default:
==> default: TASK: [analytics_api | create symlinks from the repo dir] *********************
==> default: skipping: [localhost] => (item=manage.py)
==> default:
==> default: TASK: [analytics_api | restart analytics_api] *********************************
==> default: skipping: [localhost]
==> default:
==> default: NOTIFIED: [forum | restart the forum service] *********************************
==> default: skipping: [localhost]
==> default:
==> default: NOTIFIED: [notifier | restart notifier-scheduler] *****************************
==> default: skipping: [localhost]
==> default:
==> default: NOTIFIED: [notifier | restart notifier-celery-workers] ************************
==> default: skipping: [localhost]
==> default:
==> default: PLAY RECAP ********************************************************************
==> default: localhost : ok=340 changed=119 unreachable=0 failed=0
==> default:
[db@mastodon:~/devstack]
%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment