Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Ansibleのlineinfileを使ってAmazon Linuxのロケールをニッポンに変更する

More than 3 years have passed since last update.

■ Ansibleとは

  • Ansibleの特徴

    • エージェントレスでサーバ構築を自動化してくれるツールです。
    • sshdが動作しているマシンにSSHで接続し環境を構築してくれます。
    • 設定ファイルはYAMLで書きます。プログラムの知識(Ruby、Python、etc.)は不要です。
    • 数台~数十台規模のサーバ構築だったらchefよりも簡単です。

     

  • 環境の準備
    前々回の記事を参照してください。
    Ansible 最初の一歩

■ ロケールをニッポンに変更する

  • playbook.yml

    lineinfileモジュールで文字列の置換を行っています。
    fileモジュールでシンボリックリンクをはっています。

    playbook.yml
    - hosts: all
      remote_user: ec2-user
      become: true
      tasks:
        - name: set LANG
          lineinfile: >
            dest=/etc/sysconfig/i18n
            regexp='LANG=.*'
            line='LANG=ja_JP.utf8'
        - name: set ZONE
          lineinfile: >
            dest=/etc/sysconfig/clock
            regexp='ZONE=.*'
            line='ZONE="Asia/Tokyo"'
        - name: set UTC
          lineinfile: >
            dest=/etc/sysconfig/clock
            regexp='UTC=.*'
            line='UTC=false'
        - name: link localtime
          file: >
            src=/usr/share/zoneinfo/Asia/Tokyo
            dest=/etc/localtime
            state=link
            force=yes
    
  • ansible-playbook
    実行してみます。

    $ ansible-playbook playbook.yml
    target01               : ok=5    changed=4    unreachable=0    failed=0
    

■ 確認

  • playbook実行前

    $ env | grep LANG
    LANG=en_US.UTF-8
    $ cat /etc/sysconfig/i18n
    LANG=en_US.UTF-8
    $ locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=
    $ date
    Thu Jun 30 15:05:14 UTC 2016
    $ strings /etc/localtime
    TZif2
    TZif2
    UTC0
    $ cat /etc/sysconfig/clock
    ZONE="UTC"
    UTC=true
    
  • playbook実行後
    ログインし直すと以下のように設定が変更されています。

    $ env | grep LANG
    LANG=ja_JP.utf8
    $ cat /etc/sysconfig/i18n
    LANG=ja_JP.utf8
    $ locale
    LANG=ja_JP.utf8
    LC_CTYPE="ja_JP.utf8"
    LC_NUMERIC="ja_JP.utf8"
    LC_TIME="ja_JP.utf8"
    LC_COLLATE="ja_JP.utf8"
    LC_MONETARY="ja_JP.utf8"
    LC_MESSAGES="ja_JP.utf8"
    LC_PAPER="ja_JP.utf8"
    LC_NAME="ja_JP.utf8"
    LC_ADDRESS="ja_JP.utf8"
    LC_TELEPHONE="ja_JP.utf8"
    LC_MEASUREMENT="ja_JP.utf8"
    LC_IDENTIFICATION="ja_JP.utf8"
    LC_ALL=
    [ec2-user@ip-172-31-23-139 ~]$ date
    2016年  7月  1日 金曜日 00:27:46 JST
    $ strings /etc/localtime
    TZif2
            JCST
    TZif2
    JCST
    JST-9
    $ cat /etc/sysconfig/clock
    ZONE="Asia/Tokyo"
    UTC=false
    

    おしまい(^^)v

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away