LoginSignup
3
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-06-30

■ 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

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3