環境変数でプロキシを指定して yum を使う
vars:
proxy_env:
http_proxy: http://192.168.1.1:8080
https_proxy: http://192.168.1.1:8080
tasks:
- name: epelレポジトリの追加
yum: name=epel-release state=latest
environment: proxy_env
変数の値をJSONで設定する
vars:
os: {
hostname: "node01",
locale: "ja_JP.UTF-8",
zone: "Asia/Tokyo",
zoneinfo_path: "/usr/share/zoneinfo/Asia/Tokyo"
}
tasks:
- name: ホスト名の設定
hostname: name="{{os.hostname}}"
ユーザを配列で設定して作成する
vars:
# md5-password) openssl passwd -1 password
os_users:
- { name: "user01", password: "$1$ZjFvuZTg$djhcNWh2.GAWtf5TOgzTa2", uid: "2001", group: "users", home: "/home/user01", shell: "/bin/bash" }
- { name: "user02", password: "$1$ZjFvuZTg$djhcNWh2.GAWtf5TOgzTa2", uid: "2002", group: "users", home: "/home/user02", shell: "/bin/bash" }
tasks:
- name: (OS) ユーザの作成
user: >
name={{item.name}}
state=present
password={{item.password}}
uid={{item.uid}}
group={{item.group}}
home={{item.home}}
shell={{item.shell}}
with_items: os_users
ディレクトリを配列で設定して作成する
tasks:
- name: ディレクトリ作成
file: path={{item}} state=directory owner=root group=root mode=0755
with_items:
- /data1
- /data2
あるファイルが存在したら処理をする
tasks:
- stat: path=/etc/yum.repos.d/epel.repo
register: epel_stat
- name: yumパッケージのインストール
yum: name={{item}} enablerepo=epel state=latest
with_items:
- pkg1
- pkg2
when: epel_stat.stat.exists == true
コマンドを実行する
tasks:
- name: パーティション拡張の指示
shell: "dracut --force --add growroot /boot/initramfs-$(uname -r).img"
register: dracut
ignore_errors: true
changed_when: false
- name: reboot!
command: shutdown -r now
処理対象のホスト名とIPアドレスを変数に設定する
vars:
myhost: '{{ inventory_hostname }}'
myip: '{{ hostvars[inventory_hostname]["ansible_eth0"]["ipv4"]["address"] }}'
tasks:
- debug: var=myhost
- debug: var=myip