Ansible を始めてみる

ansible-galaxy を使うことで role の雛形が作られます。Rails で言うと Scaffold みたいなものです。

$ ansible-galaxy --offline init sample
- sample was created successfully

インベントリファイルを作ります。ファイル名は inventory にしました。

[target]
localhost

sample role を呼び出すための playbook を書きます。playbook.yml としました。

---
- hosts: all
  roles:
    - sample

sample にはまだタスクがありませんが、実行できるようになりました。

$ ansible-playbook -i inventory playbook.yml 

PLAY [all] ***************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************
ok: [localhost]

PLAY RECAP ***************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0   

実際にタスクを書いてみます。sample/tasks/main.yml を編集します。

---
# tasks file for sample

- name: hello ansible!
  debug:
    msg: "Hello Ansible!"

実行してみます。

$ ansible-playbook -i inventory playbook.yml 

PLAY [all] ***************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************
ok: [localhost]

TASK [sample : hello ansible!] *******************************************************************************************************************
ok: [localhost] => {
    "msg": "Hello Ansible!"
}

PLAY RECAP ***************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0   

ここでは localhost を対象に debug メッセージを出してみただけでしたが、対象を動的に変えてみたり、モジュールを使って実際にサーバの設定をしてみたりなど、ここからいろんなことができるようになります。

最初の一歩になればと思います。

Fedora 29 を入れたらやること

忘れないようにメモしておきます。

caps キーを ctrl にする設定。忘れるのでメモ。

$ gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"

日本語キーボードにならないときは /usr/share/ibus/component/mozc.xml を編集。

<layout>jp</layout>

PyCharm で Django その2

https://docs.djangoproject.com/ja/2.1/intro/tutorial02/

mysite/settings.py で設定。

DB はそのまま sqlite3 を使うことにしました。

国際化のところは日本に。

# Internationalization
# https://docs.djangoproject.com/en/2.1/topics/i18n/

LANGUAGE_CODE = 'ja-jp'

TIME_ZONE = 'Asia/Tokyo'

Terminal で migrate します。

次は Model の作成。
class の引数が親クラスというのはどうも気持ち悪い。。

Model を追加したら settings.py に追加するようです。PyCharm が補完してくれます。

makemigrations します。このへんはちょっと流儀が Ruby on Rails と違いますね。

migrate して DB に反映させます。

チュートリアルに書いてありますが、

1. モデルを作る (models.py)
2. マイグレーションファイルを作る (python3 manage.py makemigrations)
3. マイグレーションする (python3 manage.py migrate)

こういう流れですね。

次の API で遊んでみるというのは Rails で言うところの irb や rails console みたいなものだと思います。
tab 補完も効きますね。

models.py に少々実装しますが、import を忘れていたりすると警告が出ますし、補完も効くのでわかりやすいです。

次は Django admin を入れていきます。管理者ユーザを作るところから。

サーバを起動してブラウザからアクセス。

ログインするとこんな画面でした。コード書いてないのに標準で認証や認可の仕組みが入っているようです。

polls/admin.py を書きます。

from django.contrib import admin

# Register your models here.
from .models import Question

admin.site.register(Question)

即反映されて、レコードをいじれたりするようになってました。

その2 はここまでです。