環境・前提条件
対象 | バージョン |
---|---|
Host OS | Windows10 |
Client OS | Centos-7.8 |
Ansible (ansible_local) | Version 2.9.24 |
ファイル・ディレクトリ操作
ダウンロード get_url
- name: Download Something
get_url:
url: [URL_FOR_DOWNLOAD]
dest: [PATH_OF_DEST]
# Example
- name: Download Oracle preinstall rpm package
get_url:
url: https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
dest: /tmp
インストール yum
- name: Install Something
yum:
name: [PATH_OF_INSTALL_PACKAGE]
state: present
# Example
- name: Install Oracle Preinstallation
yum:
name: /tmp/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
state: present
ファイルコピー(ホスト to クライアント) copy
- name: Copy Something
copy:
src: [PATH_OF_SOURCE_ON_HOST]
dest: [PATH_OF_DEST_ON_CLIENT]
mode: [PERMISSION_MODE]
# Example
- name: Copy file for Oracle installation
copy:
src: ./installer/oracle-database-ee-19c-1.0-1.x86_64.rpm
dest: /tmp/oracle-database-ee-19c-1.0-1.x86_64.rpm
mode: 0644
ディレクトリ作成 file (state: directory)
- name: Make directory
file:
path: [PATH_OF_DIRECTORY]
state: directory
owner: [OWNER]
group: [GROPU]
mode: [PERMISSION_MODE]
# Example
- name: Make ansible setup status directory
file:
path: "/ansible_setup_status"
state: directory
owner: "root"
group: "root"
mode: 0755
空ファイル作成 file (state: touch)
- name: Create empty file
file:
path: [PATH_OF_FILE]
state: touch
# Example
- name: Put file to indicate completed configure Oracle DB
file:
path: "/ansible_setup_status/configured_oracle_db"
state: touch
ファイル存在確認
- name: Check the file if exist
stat:
path: [PATH_OF_FILE]
register: [REGISTER_VARIABLE]
# Example
- name: "check 'configured_oracle_db' if exist"
stat:
path: "/ansible_setup_status/configured_oracle_db"
register: configured_oracle_db_exist
ファイル編集
ファイル末尾に複数行を追記 lineinfile
- name: Add lines to end of file
ansible.builtin.lineinfile:
path: [PATH_OF_FILE]
state: present
line: "{{ item }}"
with_items:
- 'line1'
- 'line2'
- 'line3'
# Example
- name: bash_profile of oracle user
ansible.builtin.lineinfile:
path: /home/oracle/.bash_profile
state: present
line: "{{ item }}"
with_items:
- 'export ORACLE_SID=ORCLCDB'
- 'export ORACLE_BASE=/opt/oracle'
- 'export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1'
- 'export PATH=$PATH:$ORACLE_HOME/bin'
ファイル内文字列置換 replace
- name: Replace line in file
replace:
path: [PATH_OF_FILE]
regexp: [TARGET_CHARCTER]
replace: [REPLACE_CHARCTER]
# Example
- name: Replace a localhost ip address
replace:
path: /etc/hosts
regexp: '^127.0.0.1'
replace: '192.168.60.50'
Shell 実行
実行 cmd
- name: Execute command
shell:
cmd: [COMMAND]
# Example
- name: Configure Oracle DB
shell:
cmd: /etc/init.d/oracledb_ORCLCDB-19c configure
環境変数を宣言しつつ実行 environment
- name: Execute command with environment variable
shell:
cmd: [COMMAND]
environment:
[ENV1]: [VALUE1]
[ENV2]: [VALUE2]
[ENV3]: [VALUE3]
# Example
- name: Configure Oracle DB
shell:
cmd: /etc/init.d/oracledb_ORCLCDB-19c configure
environment:
ORACLE_BASE: /opt/oracle
ORACLE_HOME: /opt/oracle/product/19c/dbhome_1
ORACLE_SID: ORCLCDB
ユーザを指定して実行 become
- name: Execute with specified user
shell:
cmd: [COMMAND]
become: yes
become_user: [USER]
# Example
- name: Install Golden Gate
shell:
cmd: /home/oracle/work/gg_inst/fbo_ggs_Linux_x64_shiphome/Disk1/runInstaller -silent -nowait -responseFile /home/oracle/work/gg_inst/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
become: yes
become_user: oracle
失敗を無視する実行 ignore_errors
- name: Execute command and ignore errors
shell:
cmd: [COMMAND]
ignore_errors: yes
# Example
- name: Configure Oracle DB
shell:
cmd: /etc/init.d/oracledb_ORCLCDB-19c configure
ignore_errors: yes
条件に基づき実行 when
- name: Execute depends on condition
shell:
cmd: [COMMAND]
when: [CONDITION]
# Example(ファイルの存在を確認してから実行)
- name: "check 'configured_oracle_db' if exist"
stat:
path: "/ansible_setup_status/configured_oracle_db"
register: configured_oracle_db_exist
- name: Configure Oracle DB
shell:
cmd: /etc/init.d/oracledb_ORCLCDB-19c configure
when: not configured_oracle_db_exist.stat.exists
warning を出さない warn: false
- name: Not show warning
shell:
cmd: [COMMAND]
args:
warn: false
# Example
- name: Unzip Oracle Golden Gate installation file
shell:
cmd: unzip -u /home/oracle/work/gg_inst/191004_fbo_ggs_Linux_x64_shiphome.zip -d /home/oracle/work/gg_inst/
args:
warn: false
タスク調整・デバッグ
特定の時間待つ pause
例) 5秒待つ場合
- name: pause
pause:
seconds: 5
register に登録された内容を確認 debug
- name: pause
pause:
seconds: 5
register: result
- name: show result
debug:
var: result