서버를 구성하는데 mediainfo와 ffmpeg을 설치할 필요가 있었다.
설치할 서버가 적을 경우 하나씩 해도 되지만 서버가 많을 경우 일일이 하는 것이 어렵다.
이를 쉽게 하기 위해 자동화 도구 중에 하나인 Ansible을 사용했다.
많은 명령어들을 지원하는데 yum으로만 진행하여 다음과 같이 설정 파일을 만들었다.
- hosts: "{{ host }}"
tasks:
- name: install epel-release
yum:
name: epel-release
state: present
become: yes
become_user: root
- name: localinstall rpmfusion-free-release-7
yum:
name: https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
disable_gpg_check: yes
state: present
become: yes
become_user: root
- name: install mediainfo
yum:
name: mediainfo
state: present
become: yes
become_user: root
- name: install ffmpeg
yum:
name: ffmpeg
state: present
become: yes
become_user: root
state는 yum과 같이 사용하는 값인데 absent, installed, latest, present, removed이 있다.
present, installed, latest는 설치를 진행하고 absent, removed는 패키지를 제거한다.
become과 become_user를 사용하여 사용자를 전환할 수 있으며 become_user는 root가 기본값이다.
yum 프록시 설정이 필요한 경우 yum.conf를 수정해야하는데 lineinfile을 사용하여 쉽게 수정할 수 있다.
- hosts: "{{ host }}"
tasks:
- name: proxy added to /etc/yum.conf
lineinfile:
path: /etc/yum.conf
regexp: 'proxy='
insertafter: '\[main\]'
line: 'proxy=proxy_addr'
state: present
become: yes
become_user: root
regexp는 찾으려는 문자열의 정규식이며 insertafter에 해당 문자열 다음에
state가 present인 경우 line의 값을 추가한다.
state는 absent, present가 있는데 absent는 line을 제거하고 present는 추가한다.