ansible 流程控制和roles

2022-07-31 20:42:14 字數 4287 閱讀 4390

模組

yum 安裝 yum模組

pip 安裝python相關模組

service 啟動服務

enabled 設定開機自啟動

不能都是* 那也會導致每分鐘都執行相同的命令 會撐爆伺服器

group 建立組

user 使用者

ad-hoc 這些模組是這樣稱呼的

yaml

傳參 動態的

yaml

ansible all -m setup

ansible_all_ipv4_addresses

# ipv4的所有位址

ansible_all_ipv6_addresses

# ipv6 的所有位址

ansible_date_time

# 獲取到節點控制時間

ansible_default_ipv4

# 預設的ipv4位址

ansible_distribution

# 系統

ansible_distribution_major_version

# 系統的版本號

ansible_domain

# 系統所在的域

ansible_env

# 系統的環境變數

ansible_hostname

# 系統的主機名

ansible_fqdn

# 系統的全名

ansible_machine

# 系統的架構

ansible_memory_mb

# 系統的記憶體資訊

ansible_os_family

# 系統的家族

ansible_pkg_mgr

# 系統的包管理工具

ansible_processor_cores

# 系統的cpu的核數(每顆)

ansible_processor_count

# 系統cpu的顆數

ansible_processor_vcpus

# 系統cpu的總個數= core * count 核數乘顆數

ansible_python

# 系統上的python

ansible cache -m setup -a 'filter=*processor*'

# 用來搜尋filter後面的字段

*匹配數量,表示(0,+%)

? 匹配數量,便是 0 | 1 二者之一

.除了換行符以外的所有字元

+至少一次(1,+%)

[12365] 匹配內容,存在即可 or 關係

() 分組

次數,出現m次

至少m次

出現m-n次

a*.b 可以匹配db

a.*匹配不了db

- hosts: db

remote_user: root

tasks:

- name: createfile

copy: content='風蕭蕭兮易水寒' dest=/tmp/a.txt

when: a=='3'

- name: createfile

copy: content='壯士一去兮不復還' dest=/tmp/a.txt

when: a=='4'

- hosts: db

tasks:

- name: wadong

tieqiao: wadong

- name: tk

dong: tk

tags: tk

- hosts: web

tasks:

- name: install_nginx

yum: name=nginx

- name: copyfile

copy: src=/etc/nginx/nignx.conf dest=/etc/nginx/nginx.conf

tags: copyfile

- name: start

service: mame=nginx state=started

ansible-playbook -t copyfile p1.py

# 只執行標籤的動作 其餘的不執行

一次性建立多個

- hosts: gb

tasks:

- name: gbqc

dong: }

with_items:

- qbqc

- cyf

- ssfj

- hosts: web

task:

- name: createuser

user: name=}

with_items:

- max20

- max21

- max22

- host: web

tasks:

- name: createuser

user: name=}

with_items:

- eral11

- eral12

- eral13

- hosts: web

tasks:

- name: crategroup

group: name=}

with_items:

- max30

- max31

- max32

- name: createuser

user: name=} group=}

with_items:

- -

-

jinja2

- hosts: web

tasks:

- name: installredis

yum: name=redis

- name: copyfile

template: src=/etc/redis.conf dest=/etc/redis.conf

- name: start

service: name=redis state=started

配置檔案:bind }

- hosts: web

tasks:

- name: installredis

yum: name=redis

- name: copyfile

template: src=redis.conf dest=/etc/redis.conf

- name: start

service: name=redis state=started

tips: 可以寫相對路徑,在當下目錄新建乙個templates目錄,

然後把檔案放在templates目錄中

修改配置檔案

- hosts: web

tasks:

- name: installredis

yum: name=redis

- name: copyfile

template: src=redis.conf dest=/etc/redis.conf

tags:copyfile

nofity:restart

- name:start

service: name=redis state=restarted

handlers:

- name: restart

service: name=redis state=restarted

roles 資料夾

資料夾裡面是要建立的每乙個角色,每乙個資料夾

每乙個角色裡面都要有tasks(must),templates,files,handlers,

vars目錄

每個目錄都要有main.yml檔案,通過import_tasks來呼叫

其中templates資料夾中的檔案可以通過相對路徑來呼叫

其中files資料夾是否可以通過相對路徑來呼叫

hodoop 大資料

setenforce 0

# 用來臨時關閉selinux

iptables -f

# 臨時關閉防火牆

# 這個需要yum install iptables

/etc/seliunx/config

# 永久關閉

Ansible流程控制

在開發中,經常會編寫一些流程控制相關的邏輯,如條件判斷 迴圈等,ansible也提供了對條件判斷 迴圈等的操作。ansible的模板配置是基於jinja2的,如變數的定義 關於when的更多示例 hosts proxy tasks name deploying to development.debu...

ansible遠端控制

環境 一台centos7,一台centos6.5 實驗步驟 centos7的伺服器上 一.準備工作 1.關閉selinux 清空缺省防火牆策略,橋接物理網路。setenforce 0 ifconfig systemctl restart sshd iptables f 2.安裝遠端登陸的依賴關係包。...

mysql流程控制 MySQL 流程控制

流程控制 1 順序結構 程式從上往下依次執行 2 分支結構 多條路徑選擇一條 3 迴圈結構 在規定範圍內重複執行 一 分支結構 1 if函式 功能 實現分支流 語法 if 表示式1,表示式2,表示式3 執行順序 執行表示式1,成立返回表示式2的值,不成立則返回表示式3的值 應用 任何地方 例 if ...