【연재 01】204.yum에서 필요한 라이브러리/미들/소프트웨어를 인스톨 한다【Ansible yum 모듈】
최신 소스 코드는 【GitHub】에서 게시 중입니다.
서버 책임은 여기에서 확인하십시오.
1.yum에서의 설치 개요
yum을 사용하여 필요한 라이브러리/소프트웨어/미들웨어를 설치합니다.
2.playbook 파일의 상관
3.playbook(site.yml)
${ANSIBLE_HOME}/site.yml
메인이 되는 playbook(site.yml) 참조
4.yum 설치용 playbook
${ANSIBLE_HOME}/operations/0012_yum.yml
0012_yum.yml
# ===================
# yumにてパッケージをインストールする(yum.yml)
# ===================
# ===================
# すべてのサーバにインストールするパッケージ
# 主にサーバ固有のミドルウェア以外のライブラリやソフトウェア
# をインストールする
# ===================
- hosts: all
sudo: no
remote_user: root
tasks:
- name: YUMインストール(全体)
yum: name=firewalld state=present
- yum: name={{rpm.package.vim }} state=present
- yum: name={{rpm.package.openssl }} state=present
- yum: name={{rpm.package.wget }} state=present
- yum: name={{rpm.package.unzip }} state=present
- yum: name={{rpm.package.gcc }} state=present
- yum: name={{rpm.package.git }} state=present
- yum: name={{rpm.package.rsync }} state=present
- yum: name={{rpm.package.libffi_devel }} state=present
- yum: name={{rpm.package.bind_utils }} state=present
- yum: name={{rpm.package.net_tools }} state=present
- yum: name={{rpm.package.manpage }} state=present
- yum: name={{rpm.package.chrony }} state=present
- yum: name={{rpm.package.openssl_devel }} state=present
- yum: name={{rpm.package.readline_devel }} state=present
- yum: name={{rpm.package.zlib_devel }} state=present
- yum: name={{rpm.package.psmisc }} state=present
- yum: name={{rpm.package.nfs_utils }} state=present
- yum: name={{rpm.package.mlocate }} state=present
- yum: name={{rpm.package.mariadb }} state=present
- yum: name={{rpm.package.expect }} state=present
- yum: name={{rpm.package.lsof }} state=present
- yum: name={{rpm.package.python_passlib }} state=present
# ===================
#AnsibleにてSELinuxを実行するのに必要
# ===================
- yum: name={{rpm.package.libselinux_python }} state=present
# ===================
# アパッチをインストール
# java APサーバのTOMCATはyumではなく直接TOMCATのサイトからダウンロードした
# ものを使用する為ここではインストールしない
# ===================
- hosts: ap_admin
sudo: no
remote_user: root
vars_files:
- ../vars/yum.yml
tasks:
- name: YUMインストール(apserv01とadminserv0にアパッチをインストール)
yum: name={{rpm.package.httpd }} state=present
- yum: name={{rpm.package.mod_ssl }} state=present
# ===================
# mysql(mariadb-server)をインストール
# adminserv01にインストールするのは本番デプロイ前の確認用
# ===================
- hosts: db_admin
sudo: no
remote_user: root
vars_files:
- ../vars/yum.yml
tasks:
- name: YUMインストール(dbserv01とadminserv01にmysqlをインストール)
yum: name={{rpm.package.mariadb_server }} state=present
# ===================
# adminserv01のみでyumからインストールするのはopenvpnのみ
# SelniumやTomcatは本家サイトより直接ダウンロードする
# ===================
- hosts: adminserv01
sudo: no
remote_user: root
vars_files:
- ../vars/yum.yml
tasks:
# ===================
# ・openvpnをyumからインストールする為EPELリポジトリをインストールする
# ・openvpnに設定するSSL証明書作成にはeasy_rsaで作成する(直接OpenSSLコマンド使用しない)
# ===================
- name: YUMインストール(adminserv01にopenvpn関連をインストール。またアパッチのSVNモジュールもインストール)
yum: name={{rpm.package.epel }} state=present
- yum: name={{rpm.package.openvpn }} state=present
- yum: name={{rpm.package.easy_rsa }} state=present
- yum: name=mod_dav_svn state=present
Ansible
서식:
yum: name=\${라이브러리 이름} state=${present 또는 latest 또는 absent}
예:
firewalld가 설치되어 있지 않으면 한다.
yum: name=firewalld state=present
state
상태
present
설치된 것
latest
최신 설치됨
absent
설치되지 않은 것
5.yum 설치용 playbook(/vars/yum.yml)
${ANSIBLE_HOME}/vars/yum.yml
rpm:
package:
vim: vim
openssl: openssl
httpd: httpd
wget: wget
unzip: unzip
gcc: gcc
git: git
rsync: rsync
libffi_devel: libffi-devel.x86_64
bind_utils: bind-utils
net_tools: net-tools
mod_ssl: mod_ssl
manpage: man-pages-ja
chrony: chrony
openssl_devel: openssl-devel
readline_devel: readline-devel
zlib_devel: zlib-devel
psmisc: psmisc
nfs_utils: nfs-utils
mlocate: mlocate
mariadb: mariadb
mariadb_server: mariadb-server
epel: epel-release
openvpn: openvpn
expect: expect
libselinux_python: libselinux-python
easy_rsa: easy-rsa
rpm
├── package
│ └── vim : vim
│ └── openss:oepnssl
···
의 계층에서 YUM 패키지명을 정의하고 있다.
변수를 사용하는 경우는 여러 곳에서 이용하는 경우는 좋지만
· 한 곳에서만 참조됩니다.
・프로덕션 환경과 개발 환경에서 값을 전환할 필요가 있다(환경 의존하는 IP나 호스트명, 패스나 포트 등)
그렇지 않으면 오히려 직관성을 잃어 버릴지도 모릅니다.
이번 yum.yml도 재이용성도 없고, 프로덕션 환경과 개발 환경에서의 전환이 불필요하기 때문에, 변수를 외부화하는 메리트는 얇은 생각이 듭니다 w
다음번은 「SELinux 무효화 【Ansible SELinux 모듈】」에 대해.
시리즈의 목차는 【이쪽】입니다.
Reference
이 문제에 관하여(【연재 01】204.yum에서 필요한 라이브러리/미들/소프트웨어를 인스톨 한다【Ansible yum 모듈】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/CsFactoryitter/items/1b7e6138197e2c58b719텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)