celeryが原因でpython manage.py syncdbに失敗した時のメモ

エラー。

$ python manage.py syncdb
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/user1/.pyenv/versions/app1/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/home/user1/.pyenv/versions/app1/lib/python2.7/site-packages/django/core/management/__init__.py", line 328, in execute
    django.setup()
  File "/home/user1/.pyenv/versions/app1/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/user1/.pyenv/versions/app1/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/home/user1/.pyenv/versions/app1/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/home/user1/.pyenv/versions/2.7.12/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/user1/.pyenv/versions/app1/lib/python2.7/site-packages/djcelery/models.py", line 15, in <module>
    from celery.utils.timeutils import timedelta_seconds
ImportError: No module named timeutils

http://stackoverflow.com/questions/40540769/importerror-no-module-named-timeutils

$ pip uninstall celery
$ pip install celery==3.1

stackoverflowのおかげですぐに解決。

AWSでAdobe Media ServerのSubscriptionをしていない時のエラー

タイトル通り、
AWSAdobe Media ServerのSubscriptionをしていない時のエラー

Launch Failed
Your account is currently being verified. Verification normally takes less than 2 hours. Until your account is verified, you may not be able to launch additional instances or create additional volumes. If you are still receiving this message after more than 2 hours, please let us know by writing to aws-verification@amazon.com. We appreciate your patience.

Adobe Media Server をサブスクライブする - Amazon CloudFront

AWS Marketplace: Adobe Media Server 5 Extended

Availability Zone がいっぱいの時のエラー

 Launch Failed
We currently do not have sufficient m3.large capacity in the Availability Zone you requested (ap-northeast-1c). Our system will be working on provisioning additional capacity. You can currently get m3.large capacity by not specifying an Availability Zone in your request or choosing ap-northeast-1a.

VPC設定ページで新しいsubnetを作って対応した。

git flowのhotfixで実施した作業内容を表示する

git log --oneline | grep hotfix

2e5336b Merge branch 'hotfix/aaaaa' into develop
93c3907 Merge branch 'hotfix/bbbbb' into develop
git show 2e5336b
commit 2e5336bde6626a642f5f516da4a776c126a9cbba
Merge: 93c3907 d312624
Author: kubo <kubo@companyname.mail>
Date:   Thu Nov 10 15:22:47 2016 +0900

    Merge branch 'hotfix/aaaaaa' into develop
git diff 93c3907 d312624

で、出来るはず、だったけど、なんか違う差分が表示される。

git show d312624

が知りたい log情報だった。

Ansistranoでソースコードをローカルで取得

アプリのデプロイにRubyCapistranoを使っていて便利だなーと思っていたので、
新しく作ったアプリでは、AnsibleのAnsistranoを使ってみた。

でも、実行すると途中で止まる。
ansible-playbook -i inventory/hosts/production playbook/deploy.yml
gitリポジトリからソースの取得するときに、デプロイ先のサーバーからgit cloneしてるっぽい。

TASK [carlosbuenosvinos.ansistrano-deploy : include] ***************************
included: /private/etc/ansible/roles/carlosbuenosvinos.ansistrano-deploy/tasks/update-code/git.yml for xx.xx.xx.xx

TASK [carlosbuenosvinos.ansistrano-deploy : ANSISTRANO | GIT | Ensure GIT deployment key is up to date] ***
skipping: [xx.xx.xx.xx]

TASK [carlosbuenosvinos.ansistrano-deploy : ANSISTRANO | GIT | Update remote repository] ***

デプロイ先のサーバーで、gitのリポジトリを取得できるように設定すれば動くけど、
ローカル環境でリポジトリを取得したかったので、調べてみた。

ansistrano_deploy_via: git
から ansistrano_deploy_via: copy
にすると、動くようになった、
と思ったけど、これはgit cloneではなくて単なるファイルコピーをするオプションだった。
ansistrano_deploy_from も足すとローカルのファイルをコピーする。
copyで実行したら遅すぎたので、rsyncに変えたら早くなった。

- hosts: all
  name: "appname1 host server"
  vars:
    ansistrano_deploy_from: "{{ playbook_dir }}/../../"
    ansistrano_deploy_to: /var/www/mmr2
    ansistrano_deploy_via: rsync
    #ansistrano_deploy_via: git
    ansistrano_git_repo: git@gogs.companyname.test:appname1/appname1.git
    ansistrano_git_branch: feature/1.1
    ansistrano_shared_paths: ["log","config"]
    ansistrano_after_update_code_tasks_file: "{{ playbook_dir }}/ansistrano/after_update_code.yml"
    ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/ansistrano/after_symlink.yml"
  vars_files:
    - vars/all/main.yml
    # - vars/{{ stage }}/main.yml
    # - vars/{{ stage }}/secret.yml
  roles:
    - carlosbuenosvinos.ansistrano-deploy

/etc/default/celeryd が読み込まれなかった

http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html
を見てcelerydの起動スクリプトを作った。

/etc/init.d/
に起動スクリプトを置いて、sudo service appname_celeryd start したら、エラーになった。

sudo service appname_celeryd start
celery init v10.1.
su: user celery does not exist
/etc/default/celeryd

に置いた設定ファイルは、
/etc/init.d/appname_celeryd
のように起動スクリプトと同じ名前にしないといけないっぽい。