ansible cache -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_distribution_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的總個數=cpu的顆數*CPU的核數 ansible_python # 系統上的python ansible cache -m setup -a 'filter=*processor*' # 用來搜索
補充內容(正則表達式)python
* 匹配數量,表示0或者屢次 ? 匹配數量,表示0或者1次 . 除換行符之外的全部字符 + 至少一次 [123abc] 匹配內容,or () 分組 {m} 次數,出現m次 {m,} 至少m次 {m,n}出現m-n次 a*.b
不一樣的系統mysql
不一樣的版本linux
不一樣的環境nginx
不一樣的用戶web
- hosts: db remote_user: root tasks: - name: createfile copy: content="大弦嘈嘈如急雨" dest=/tmp/a.txt when: a=="3" - name: cratefile copy: content="小弦切切如私語" dest=/tmp/a.txt when: a=="4"
擴展:Ubuntu 安裝包的方式是apt-get正則表達式
- hosts: db tasks: - name: wadong tieqiao: wadong - name: tk dong: tk tags: tk - hosts: web tasks: - name: installnginx yum: name=nginx - name: copyfile copy: src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf tags: copyfile - name: start service: name=nginx state=started ansible-playbook -t copyfile p7.yml
一次性建立多個redis
- hosts: gb tasks: - name: gbqc dong: {{ item }} with_items: - qbqc - cyf - ssfj - hosts: web tasks: - name: crateuser user: name={{item}} with_items: - alex20 - alex21 - alex22 ~ - hosts: web tasks: - name: crateuser user: name={{item}} with_items: - alex30 - alex31 - alex32 - name: crategroup group: name={{item}} with_items: - wulaoshi20 - wulaoshi21 - wulaoshi22 ~
- hosts: web tasks: - name: crategroup group: name={{item}} with_items: - wulaoshi30 - wulaoshi31 - wulaoshi32 - name: createuser user: name={{item.name}} group={{item.group}} with_items: - {'name':alex40,'group':wulaoshi30} - {'name':alex41,'group':wulaoshi31} - {'name':alex42,'group':wulaoshi32}
template:sql
jinja2架構
redis安裝
- 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 {{ ansible_default_ipv4.address }}
copy和tamplate的區別dom
copy模塊不替代參數
template模塊替代參數
- 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
ps:寫相對路徑: 在當前目錄下新建一個templates目錄,而後把文件放在templates目錄裏面
- hosts: web tasks: - name: installredis yum: name=redis - name: copyfile template: src=redis.conf dest=/etc/redis.conf tags: copyfile notify: restart - name: start service: name=redis state=started handlers: - name: restart service: name=redis state=restarted
回顧 playbook
傳參
條件判斷 when
循環 with_items item
嵌套循環 字典 經過點來取值
標籤 tags -t 來傳遞標籤
模板 template
handlers 不會執行, notify
目錄清晰
能夠互相調用
roles文件夾
文件夾裏面是要建立的每個角色,每個角色一個文件夾
每個角色裏面都有tasks(必須的),templates,files,handlers,vars目錄
每一個目錄都要有main.yml文件,經過import_tasks來調用
其中templates文件夾中的文件能夠經過相對路徑來調用
其中files文件夾中的文件是否能夠經過相對路徑來調用?
mysql my
mariadb
Hadoop 大數據
setenforce 0 #用來臨時關閉selinux
iptables -F # 臨時關閉防火牆
/etc/selinux/config # 永久關閉
用roles 來安裝nginx+uwsgi+mariadb + redis