LoginSignup
2
6

More than 3 years have passed since last update.

ansibleでディスク領域を拡張する

Posted at

ansibleでディスクの操作を行う方法はいくつかあるが、特に使いそうな2つをメモしておく
※ansibleのverによって名前が変わるmoduleがあるため注意

動作環境

ansible 2.7.10

partedでパーティションを切る

パーティションの情報をwith_itemsに持たせる。
複数パーティションを切る場合はwith_itemsに追加してやれば良い

roles/set_disk/tasks/main.yml
  - name: "disk settings"
  include: disk.yml
  with_items:
    - device: /dev/sdb
      num: 1
      label: gpt
      fstype: xfs
      mount_point: /home/foo/bar
      owner: hoge
  loop_control:
    loop_var: disk

roles/set_disk/tasks/disk.yml
- name: "parted {{ disk.device }}"
  parted:
    device: "{{ disk.device }}"
    number: "{{ disk.num }}"
    state: present
    label: "{{ disk.label }}"
  become: yes
  become_user: root

- name: "format {{ disk.device }}{{ disk.num }}"
  filesystem:
    dev: "{{ disk.device }}{{ disk.num }}"
    fstype: "{{ disk.fstype }}"
  become: yes
  become_user: root

- name: "get blkid for {{ disk.device }}{{ disk.num }}"
  shell: "blkid -s UUID -o value {{ disk.device }}{{ disk.num }}"
  register: uuid
  become: yes
  become_user: root

- name: "Mount up device by UUID for {{ disk.device }}{{ disk.num }}"
  mount:
    path: "{{ disk.mount_point }}"
    src: "UUID={{ uuid.stdout }}"
    fstype: "{{ disk.fstype }}"
    state: mounted
  become: yes
  become_user: root

- name: "chown mount point for {{ disk.device }}{{ disk.num }}"
  file:
    path: "{{ disk.mount_point }}"
    owner: "{{ disk.owner }}"
    group: "{{ disk.owner }}"
    state: directory
  become: yes
  become_user: root

LVMでディスクを拡張する

vgとlgの名前は特になければなんでも良い。
マウントポイントはpathに指定する。

roles/set_disk/tasks/main.yml
- name: create volume group
  lvg:
    vg: hoge
    pvs: "/dev/sdb"
  become: yes

- name: create logical volume
  lvol:
    vg: hoge
    lv: fuga
    size: +100%FREE
  become: yes

- name: make filesystem
  filesystem:
    fstype: xfs
    dev: /dev/hoge/fuga
    resizefs: yes
  become: yes

- name: mount disk
  mount:
    path: /home/foo/bar
    src: /dev/hoge/fuga
    fstype: xfs
    state: mounted
  become: yes

- name: "change permission for mount point"
  file:
    path: "/home/foo/bar"
    mode: "0755"
    owner: "hoge"
    group: "hoge"
    state: directory
  become: yes

2
6
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
2
6