国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

飛天使-linux操作的一些技巧與知識(shí)點(diǎn)4-ansible常用的技巧,配置等

這篇具有很好參考價(jià)值的文章主要介紹了飛天使-linux操作的一些技巧與知識(shí)點(diǎn)4-ansible常用的技巧,配置等。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

ansible
yum install -y ansible 
測(cè)試是否可用 ansible localhost -m ping
/etc/ansible/ansible.cfg :主配置文件,配置 ansible 工作特性
/etc/ansible/hosts :配置主機(jī)清單文件
/etc/ansible/roles/ :存放 ansible 角色的目錄

主配置文件存在 /etc/anible/ansible.cfg
指定特權(quán)用戶
[privilege_escalation]
become=True
become_method=sudo
become_user=user
become_ask_pass=False



ansible;adhoc;playbook;tasks;Roles;Roles方式編排web集群架構(gòu);

配置文件的優(yōu)先級(jí)
1) 最先查找 $ANSIBLE_CONFIG 變量
2) 其次查找當(dāng)前項(xiàng)目目錄下 ansible.cfg
3) 然后查找用戶家目錄下的 .ansible.cfg
4) 最后查找 /etc/ansible/ansible.cfg

Inventory 文件主要用來(lái)填寫(xiě)被管理主機(jī)以及主機(jī)組信息;(邏輯上定義);
默認(rèn) Inventory 文件為 /etc/ansible/hosts ;
當(dāng)然也可以自定義一個(gè)文件,當(dāng)執(zhí)行 ansible 命令時(shí)使用 -i 選項(xiàng)指定 Inventory
文件位置;
配置主機(jī)清單
[webservers]
172.16.1.7
172.16.1.8 ansible_become=yes

ansible_become=yes 這個(gè)的意思是加上sudo
嘗試開(kāi)始進(jìn)行操作
ad-hoc執(zhí)行步驟
1.加載自己的配置文件,默認(rèn) /etc/ansible/ansible.cfg ;
2.查找對(duì)應(yīng)的主機(jī)配置文件,找到要執(zhí)行的主機(jī)或者組;
3.加載自己對(duì)應(yīng)的模塊文件,如 command ;
4.通過(guò) ansible 將模塊或命令生成對(duì)應(yīng)的臨時(shí) py 文件,并將該文件傳輸至遠(yuǎn)
程服務(wù)器對(duì)應(yīng)執(zhí)行用戶 $HOME/.ansible/tmp/ansible-tmp-number/XXX.PY ;
5.執(zhí)行用戶家目錄的 `` 文件;
6.給文件 +x 執(zhí)行;
7.執(zhí)行并返回結(jié)果;
8.刪除臨時(shí) py 文件, sleep 0 退出;

使用 ad-hoc 執(zhí)行一次遠(yuǎn)程命令,注意觀察返回結(jié)果的顏色;
綠色: 代表被管理端主機(jī)沒(méi)有被修改
黃色: 代表被管理端主機(jī)發(fā)現(xiàn)變更
紅色: 代表出現(xiàn)了故障,注意查看提示

飛天使-linux操作的一些技巧與知識(shí)點(diǎn)4-ansible常用的技巧,配置等,linux,運(yùn)維,服務(wù)器文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-756685.html

ansible常用模塊
command模塊
[root@manger ~]# ansible localhost -m command -a 'chdir=/root
echo $PWD'
 ansible localhost -m command -a
'creates=/data/file ifconfig eth0'

shell 模塊
參數(shù) 選項(xiàng) 含義
chdir chdir /opt 執(zhí)行ansible時(shí),切換到指定的目錄
creates creates /data/file 如果文件存在,則跳過(guò)執(zhí)行
removes removes /data/file 如果文件存在,則執(zhí)行
ansible localhost -m shell -a "ifconfig eth0|awk
'NR==2' "

scripts 模塊
 ansible webservers -m script -a "/data/yum.sh"

copy模塊
ansible webservers -m copy -a "src=./httpd.conf
dest=/etc/httpd/conf/httpd.conf owner=root group=root mode=644"

file模塊
 ansible webservers -m file -a
"path=/tmp/foo.conf state=touch mode=666"

ansible webservers -m file -a "path=/tmp/foo
state=directory mode=777"
ansible webservers -m file -a "path=/tmp/foo
state=directory owner=root group=root mode=777 recurse=yes"

等模塊,有很多平時(shí)用不到,這里做一個(gè)大概記錄
ansible 的playbook
playbook 是一個(gè) 由 yaml 語(yǔ)法編寫(xiě)的文本文件,它由 play 和 task 兩部分組
成。
play : 主要定義要操作主機(jī)或者主機(jī)組
task :主要定義對(duì)主機(jī)或主機(jī)組具體執(zhí)行的任務(wù),可以是一個(gè)任務(wù),也可以是多個(gè)
任務(wù)(模塊)
總結(jié): playbook 是由一個(gè)或多個(gè) play 組成,一個(gè) play 可以包含多個(gè) task 任
務(wù)。
可以理解為: 使用多個(gè)不同的模塊來(lái)共同完成一件事情。

1) playbook 是對(duì) AD-Hoc 的一種編排方式。
2) playbook 可以持久運(yùn)行,而 Ad-Hoc 只能臨時(shí)運(yùn)行。
3) playbook 適合復(fù)雜的任務(wù),而 Ad-Hoc 適合做快速簡(jiǎn)單的任務(wù)。
4) playbook 能控制任務(wù)執(zhí)行的先后順序。

語(yǔ)法 描述
縮進(jìn) YAML使用固定的縮進(jìn)風(fēng)格表示層級(jí)結(jié)構(gòu),每個(gè)縮進(jìn)由兩個(gè)空格組成, 不能
使用tabs
冒號(hào) 以冒號(hào)結(jié)尾的除外,其他所有冒號(hào)后面所有必須有空格。
短橫線
表示列表項(xiàng),使用一個(gè)短橫杠加一個(gè)空格。多個(gè)項(xiàng)使用同樣的縮進(jìn)級(jí)別
作為同一列表。
示例
$cat installed_httpd.yml
#1.定義play
#2.定義task、(Installed、Configure、Init、Systemd)


- hosts: webservers
  tasks:
    - name: Installed Httpd Server
      yum:
        name: httpd
        state: present

    - name: Configure Httpd Server
      copy:
        src: ./httpd.conf.j2
        dest: /etc/httpd/conf/httpd.conf
        owner: "root"
        group: "root"
        mode: '0644'
        backup: yes
      notify: Restart Httpd Server

    - name: Init Httpd Server
      copy:
        src: ./index.html.j2
        dest: /var/www/html/test.html

    - name: Systemd Httpd Server
      systemd:
        name: httpd
        state: started
        enabled: yes

  handlers:
    - name: Restart Httpd Server
      systemd:
        name: httpd
        state: restarted


上面是用root 用戶執(zhí)行的
下面是用普通用戶執(zhí)行
- hosts: webservers
  become: true
  become_user: root
  tasks:
    - name: Installed Httpd Server
      yum:
        name: httpd
        state: present

    - name: Configure Httpd Server
      copy:
        src: ./httpd.conf.j2
        dest: /etc/httpd/conf/httpd.conf
        owner: "nouser"
        group: "nouser"
        mode: '0644'
        backup: yes
      notify: Restart Httpd Server

    - name: Init Httpd Server
      copy:
        src: ./index.html.j2
        dest: /var/www/html/test.html
        owner: "nouser"
        group: "nouser"
        mode: '0644'

    - name: Systemd Httpd Server
      systemd:
        name: httpd
        state: started
        enabled: yes

  handlers:
    - name: Restart Httpd Server
      systemd:
        name: httpd
        state: restarted


檢查語(yǔ)法 :ansible-playbook installed_httpd.yml --
syntax-check

執(zhí)行命令: ansible-playbook installed_httpd.yml 
安裝php
cat install_nginx_php.yml
#1.安裝nginx
#2.安裝php
#3.添加nginx虛擬主機(jī),觸發(fā)重啟
#4.配置php,連接redis;觸發(fā)重啟
#5.部署phpadmin;、


- hosts: webservers
  vars:
    web_site_directory: /ansible/admin2

  tasks:
    - name: Installed Nginx PHP Server
      yum:
        name: "{{ item }}"
        state: present
      loop:
        - nginx
        - php71w
        - php71w-cli
        - php71w-common
        - php71w-devel
        - php71w-embedded
        - php71w-gd
        - php71w-mcrypt
        - php71w-mbstring
        - php71w-pdo
        - php71w-xml
        - php71w-fpm
        - php71w-mysqlnd
        - php71w-opcache
        - php71w-pecl-memcached
        - php71w-pecl-redis
        - php71w-pecl-mongodb
      tags: Install

    - name: Create Nginx Process Runtime Group
      group:
        name: www
        gid: 666
      tags: Install

    - name: Create Nginx Process Runtime User
      user:
        name: www
        uid: 666
        create_home: no
      tags:
        - Install
        - Configure

    - name: Configure Nginx Nginx.conf
      copy:
        src: ./conf/nginx.conf.j2
        dest: /etc/nginx/nginx.conf
        owner: 'root'
        group: 'root'
        mode: '0644'
      notify: Restart Nginx Server
      tags: Configure

    - name: Configure Nginx VHosts ansible.oldxu.com;
      template:
        src: ./conf/ansible.oldxu.com.conf.j2
        dest: /etc/nginx/conf.d/ansible.oldxu.com.conf
      notify: Restart Nginx Server

    - name: Check Web Configure
      shell:
        cmd: /usr/sbin/nginx -t
      register: Check_Nginx
      changed_when:
        - Check_Nginx.stdout.find('successful')
        - false

    - name: Configure php php.ini
      copy:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
        mode: "{{ item.mode }}"
      loop:
        - { src: "./conf/php.ini.j2", dest: "/etc/php.ini" , mode: "0644" }
        - { src: "./conf/php-fpm.d.www.conf.j2", dest: "/etc/php-fpm.d/www.conf" , mode: "0644" }
      notify: Restart PHP Server

    - name: Systemd Nginx And PHP Server
      systemd:
        name: "{{ item }}"
        state: started
        enabled: yes
      loop:
        - nginx
        - php-fpm


# download code

    - name: Create Web Site Directory
      file:
        path: "{{ web_site_directory }}"
        state: directory
        owner: 'www'
        group: 'www'
        mode: '0755'

    - name: Unarchive Myadmin Code
      unarchive:
        src: file/phpmyadmin.zip
        dest: "{{ web_site_directory }}"
        owner: 'www'
        group: 'www'


  handlers:
    - name: Restart Nginx Server
      systemd:
        name: nginx
        state: restarted

    - name: Restart PHP Server
      systemd:
        name: php-fpm
        state: restarted
playbook中變量的引用
變量提供了便捷的方式來(lái)管理 ansible 項(xiàng)目中的動(dòng)態(tài)值。 比如 nginx-1.12 ,可能
后期會(huì)反復(fù)的使用到這個(gè)版本的值,那么如果將此值設(shè)置為變量,后續(xù)使用和修改都
將變得非常方便。這樣可以簡(jiǎn)化項(xiàng)目的創(chuàng)建和維護(hù);

在 Ansible 中定義變量分為如下三種方式:
1) 通過(guò)命令行傳遞變量參數(shù)定義
2) 在play文件中進(jìn)行定義變量
2.1) 通過(guò)vars定義變量
2.2) 通過(guò)vars_files定義變量
3) 通過(guò)inventory在主機(jī)組或單個(gè)主機(jī)中設(shè)置變量
3.1) 通過(guò)host_vars對(duì)主機(jī)進(jìn)行定義
3.2) 通過(guò)group_vars對(duì)主機(jī)組進(jìn)行定義


vars 形式的變量
- hosts: webservers
  vars:
    web_packages: httpd
    ftp_packages: vsftpd
  tasks:
    - name: Output Variables
      debug:
        msg:
          - "{{ web_packages }}"
          - "{{ ftp_packages }}"


輸出結(jié)果為
    "msg": [
        "httpd",
        "vsftpd"
    ]

在 playbook 中使用 vars_files 指定文件作為變量文件,好處就是其他的
playbook 也可以調(diào)用;
[root@ansible project1]# cat vars.yml
web_packages: httpd
ftp_packages: vsftpd

- hosts: webservers
  vars_files:
    - ./vars.yml
  tasks:
    - name: Output Variables
      debug:
        msg:
          - "{{ web_packages }}"
          - "{{ ftp_packages }}"



playbook 傳送多個(gè)變量
ansible-playbook f5.yml -i hosts -e
"web_packages=GeoIP" -e "ftp_packages=telnet"

到了這里,關(guān)于飛天使-linux操作的一些技巧與知識(shí)點(diǎn)4-ansible常用的技巧,配置等的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 飛天使-k8s知識(shí)點(diǎn)18-kubernetes實(shí)操3-pod的生命周期

    飛天使-k8s知識(shí)點(diǎn)18-kubernetes實(shí)操3-pod的生命周期

    探針的生命周期 docker 創(chuàng)建:在創(chuàng)建階段,你需要選擇一個(gè)鏡像來(lái)運(yùn)行你的應(yīng)用。這個(gè)鏡像可以是公開(kāi)的,如 Docker Hub 上的鏡像,也可以是你自己創(chuàng)建的自定義鏡像。創(chuàng)建自己的鏡像通常需要編寫(xiě)一個(gè) Dockerfile,這個(gè)文件定義了創(chuàng)建鏡像所需的所有步驟,包括基礎(chǔ)鏡像、需要安

    2024年02月20日
    瀏覽(26)
  • 飛天使-docker知識(shí)點(diǎn)13-查找docker run 啟動(dòng)時(shí)候命令與升級(jí)docker版本

    如果很久了,不記得之前docker run 命令 然后在升級(jí)docker 版本

    2024年01月21日
    瀏覽(20)
  • 飛天使-k8s知識(shí)點(diǎn)12-kubernetes資源對(duì)象5-Volume與ConfigMap等

    為什么需要volume ConfigMap Volume nfs掛載volume 持久卷的痛點(diǎn) 參考文檔: 作者:又拍云 鏈接:https://juejin.cn/post/7186925237592653884 來(lái)源:稀土掘金

    2024年01月18日
    瀏覽(21)
  • 飛天使-k8s知識(shí)點(diǎn)20-kubernetes實(shí)操5-pod更新與暫停-statefulset

    飛天使-k8s知識(shí)點(diǎn)20-kubernetes實(shí)操5-pod更新與暫停-statefulset

    資源調(diào)度 Deployment:擴(kuò)縮容 資源調(diào)度 Deployment:更新的暫停與恢復(fù) 資源調(diào)度 StatefulSet:定義一個(gè)有狀態(tài)服務(wù) headless service 金絲雀發(fā)布 參考文檔:https://support.huaweicloud.com/basics-cce/kubernetes_0015.html

    2024年02月20日
    瀏覽(28)
  • 飛天使-k8s知識(shí)點(diǎn)19-kubernetes實(shí)操4-資源調(diào)度 標(biāo)簽和選擇器:Label與Selector的使用-版本回退

    飛天使-k8s知識(shí)點(diǎn)19-kubernetes實(shí)操4-資源調(diào)度 標(biāo)簽和選擇器:Label與Selector的使用-版本回退

    添加label 資源調(diào)度 Deployment:創(chuàng)建與配置文件解析 rs pod deploy 的關(guān)聯(lián)信息展示 Deployment:滾動(dòng)更新 Deployment:回滾 回退版本實(shí)際操作

    2024年02月20日
    瀏覽(28)
  • 前端一些知識(shí)點(diǎn)

    由來(lái) cookie設(shè)計(jì)的初衷是用于維護(hù)HTTP狀態(tài) 原理 瀏覽器首先發(fā)送一個(gè)無(wú)狀態(tài)請(qǐng)求到服務(wù)端 服務(wù)端帶上cookie返回 瀏覽器后面的請(qǐng)求都會(huì)帶上cookie(如果客戶端或者服務(wù)端對(duì)cookie沒(méi)有操作的話) 生成機(jī)制 服務(wù)端生成,在Http Response Header 中 Set-Cookie 客戶端生成,通過(guò) document.cookie設(shè)

    2024年03月13日
    瀏覽(57)
  • 一些知識(shí)點(diǎn)小細(xì)節(jié)

    當(dāng)遇到的問(wèn)題有關(guān)逆序輸出,可以轉(zhuǎn)換一下思想,就是使用for循環(huán)的時(shí)候,i的初始化是從數(shù)組或者是字符串的最后一個(gè),然后注意設(shè)置循環(huán)結(jié)束的條件,最重要的是不要忘記i--;而不是I++; ?注意:當(dāng)要逆序輸出的是字符串類(lèi)型,可以使用StringBuilder類(lèi),因?yàn)镾tringBuilder類(lèi)有 r

    2024年04月13日
    瀏覽(25)
  • C++11一些知識(shí)點(diǎn)

    1、C++11實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者模型 2、unique_lock與lock_guard的比較 引用自:施磊老師的《C++高級(jí)課程》

    2024年02月12日
    瀏覽(21)
  • mysql innodb一些知識(shí)點(diǎn)

    1、事務(wù)和鎖的關(guān)系; 在MySQL事務(wù)中,只要開(kāi)始了一次事務(wù),就會(huì)自動(dòng)加上一個(gè)共享鎖(Shared Lock)。這個(gè)鎖會(huì)在事務(wù)結(jié)束時(shí)自動(dòng)釋放。如果在事務(wù)中需要更新某個(gè)數(shù)據(jù)對(duì)象,那么MySQL會(huì)將該數(shù)據(jù)對(duì)象的共享鎖升級(jí)為排他鎖(Exclusive Lock),這可以確保在其他事務(wù)中對(duì)該數(shù)據(jù)對(duì)象

    2024年02月14日
    瀏覽(24)
  • PLSQL一些常用的知識(shí)點(diǎn)

    此處簡(jiǎn)單的記錄一下在 oracle中如何使用plsql語(yǔ)法,記錄一些簡(jiǎn)單的例子,防止以后忘記。 統(tǒng)計(jì)總共有多少個(gè)學(xué)生,并進(jìn)行if判斷。 輸出1到100 需要放到 execute immediate 中執(zhí)行,否則會(huì)報(bào)錯(cuò)。 存在更新,不存在插入。 包頭 可以簡(jiǎn)單的理解 java 中的接口。 包體 可以簡(jiǎn)單的理解

    2024年02月04日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包