Anableによる自動化構成管理(22.04.15)
10857 ワード
へんすう
変数の定義と参照
template:
src: foo.cfg.j2
dest: '{{ remote_install_path }}/foo.cfg'
name: '{{ abc }}'
dest: '{{ abc }}/abc.com'
dest: '{{ abc }}'/abc.com #문법 오류
- hosts: 192.168.100.11
vars:
msg: hello world
tasks:
- debug:
var: msg
- debug:
msg: '{{ msg }} korea'
- hosts: 192.168.100.11
vars:
msg: hello world
web:
message: hello web
fruits:
- apple
- banana
tasks:
- debug:
msg: '{{ msg }} korea'
- debug:
msg: "{{ web['message'] }}"
#msg: '{{ web["message"] }}' O
#msg: '{{ web['message'] }}' X
- debug:
msg: '{{ fruits[0] }} {{ fruits[1] }}'
変数の登録
登録:変数の登録- hosts: 192.168.100.11
tasks:
- yum:
name: httpd
state: installed
register: yum_result #등록 변수
- debug:
var: yum_result
- debug:
var: yum_result["rc"]
変数定義の場所
template:
src: foo.cfg.j2
dest: '{{ remote_install_path }}/foo.cfg'
name: '{{ abc }}'
dest: '{{ abc }}/abc.com'
dest: '{{ abc }}'/abc.com #문법 오류
- hosts: 192.168.100.11
vars:
msg: hello world
tasks:
- debug:
var: msg
- debug:
msg: '{{ msg }} korea'
- hosts: 192.168.100.11
vars:
msg: hello world
web:
message: hello web
fruits:
- apple
- banana
tasks:
- debug:
msg: '{{ msg }} korea'
- debug:
msg: "{{ web['message'] }}"
#msg: '{{ web["message"] }}' O
#msg: '{{ web['message'] }}' X
- debug:
msg: '{{ fruits[0] }} {{ fruits[1] }}'
- hosts: 192.168.100.11
tasks:
- yum:
name: httpd
state: installed
register: yum_result #등록 변수
- debug:
var: yum_result
- debug:
var: yum_result["rc"]
Playbookで変数を定義する
vars
- hosts: a
vars:
message: hello
vars_prompt
---
- hosts: 192.168.100.11
vars_prompt:
- name: username
prompt: What is your username?
private: no
- name: password
prompt: What is your password?
tasks:
- debug:
msg: 'Logging in as {{ username }}, password is {{ password }}'
リファレンスhttps://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html#interactive-input-prompts
vars_files
- hosts: a
vars_files:
- vars.yaml
tasks:
- debug:
var: msg
vars.yaml
msg: hello world
在庫での変数の定義
変数の範囲
特定のホストまたはグループに影響
[nodes]
192.168.100.11 msg=seoul
192.168.100.12 msg=busan
[nodes:vars]
message="hello world"
- hosts: nodes
tasks:
- debug:
var: msg
- debug:
var: message
コマンドで変数を定義する
ansible-playbook test.yaml -e msg=korea
変数の優先度
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#understanding-variable-precedence
低い
高さ
変数の範囲
フィルタ
変数に必要なコンテンツのみ取得
変数で値を変更する加工/フォーマット(transform)
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html
{{ msg | filter }}
- hosts: 192.168.100.11
vars:
pwd: P@ssw0rd
tasks:
- user:
name: devops
password: "{{ pwd | password_hash('sha512', 65534 | random(seed=inventory_hostname) | string) }}"
state: present
パラメータ
setup
モジュールが収集したホスト変数(ハードウェア、オペレーティングシステム)Playbookを実行するには、常に最初のタスク
gathering facts
に基づいて収集されます.- hosts: 192.168.100.11
gather_facts: no
とくしゅへんすう
https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
かたわく
jinjaテンプレート
https://jinja.palletsprojects.com/en/2.10.x/
- hosts: 192.168.100.11
vars:
message: korea
tasks:
- copy:
src: origin.txt
dest: /tmp/copy.txt
- template:
src: origin.txt
dest: /tmp/template.txt
origin.txt
hello {{ message }} world
jinja templetファイル拡張子.j2
, .jinja2
Ubuntu構成
Vagrant.configure("2") do |config|
# Define VM
config.vm.define "controller" do |centos|
centos.vm.box = "centos/7"
centos.vm.hostname = "controller"
centos.vm.network "private_network", ip: "192.168.100.10"
centos.vm.provider "virtualbox" do |vb|
vb.name = "controller"
vb.cpus = 2
vb.memory = 2048
end
end
# Define VM
config.vm.define "node1" do |centos|
centos.vm.box = "centos/7"
centos.vm.hostname = "node1"
centos.vm.network "private_network", ip: "192.168.100.11"
centos.vm.provider "virtualbox" do |vb|
vb.name = "node1"
vb.cpus = 2
vb.memory = 2048
end
end
# Define VM
config.vm.define "node2" do |centos|
centos.vm.box = "centos/7"
centos.vm.hostname = "node2"
centos.vm.network "private_network", ip: "192.168.100.12"
centos.vm.provider "virtualbox" do |vb|
vb.name = "node2"
vb.cpus = 2
vb.memory = 2048
end
end
# Define VM
config.vm.define "node3" do |ubuntu|
ubuntu.vm.box = "ubuntu/bionic64"
ubuntu.vm.hostname = "node3"
ubuntu.vm.network "private_network", ip: "192.168.100.13"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "node3"
vb.cpus = 2
vb.memory = 2048
end
end
end
aptコマンドオプション
ネットワーク管理
Netplanツール
NetworkManager X
/etc/netplan/\*.yaml
netplan apply
その他
保安
Reference
この問題について(Anableによる自動化構成管理(22.04.15)), 我々は、より多くの情報をここで見つけました https://velog.io/@sunny-10/22.04.15テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol