1. 程式人生 > >運維筆記43 使用saltstack配置完整線上服務(haproxy+keepalived,nginx+php+memcache,mysql主從)

運維筆記43 使用saltstack配置完整線上服務(haproxy+keepalived,nginx+php+memcache,mysql主從)

概述:

之前我們所介紹過了很多實用的服務,有負載均衡類的,web服務類的,資料庫類的等等,這些服務有的配置容易,有的配置困難,那我們現在設想一下在生成環境中,有上百臺,甚至上千臺伺服器的情況下,難道要我們去挨個去配置每一臺伺服器嗎,這是無法想象的,所以有了saltstack這類自動化運維工具的出現,幫助我們高效快速的部署服務。

線上服務拓撲

這裡寫圖片描述
這次的拓撲基本上已經可以勝任一個相當活躍的服務的後端架構了,但是我們一般沒有這麼多機器,就算是用虛擬機器資源也很有可能不夠,為了能在一臺機器上完成此架構,我們決定做如下分配。
haprxoy1:
cpu:1
ram:512MB
硬碟:20GB
執行服務:haproxy+keepalived+salt_master
ip:172.25.3.101
haproxy2:


cpu:1
ram:512MB
硬碟:20GB
執行服務:haproxy+keepalived+salt_minion
ip:172.25.3.102
lnmp1:
cpu:1
ram:1024MB
硬碟:20GB
執行服務:nginx+php_fpm+memchached+mysql_master+salt_minion
ip:172.25.3.103
lnmp2:
cpu1:
ram:1024MB
硬碟:20GB
執行服務:nginx+php_fpm+memcached+mysql_slave+salt_minion
ip:172.25.3.104

一.saltstack配置

我們先簡要講解下salt的安裝配置與使用,這部分涉及的機器與上面拓撲圖中的無關
salt1.mo.com : 172.25.3.100
salt2.mo.com:172.25.3.101
1.配置host檔案
/etc/hosts

172.25.3.100 salt1.mo.com
172.25.3.101 salt2.mo.com

修改hostname
salt1:

[[email protected] ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=salt1.mo.com

salt2:

[[email protected] ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=salt2.mo.com

2.安裝
salt1相當於salt的服務端,我們需要安裝salt-master與salt-minion,而salt2相當於salt客戶端,在之後的叢集部署中,一般salt服務端只有一個,但是客戶端可以有很多,服務端與客戶端通訊,從完成相關配置檔案,軟體包的配置與部署。
由於我們的機器不能與外網連線,所以我將saltstack需要的rpm包全下載了下來製作成一個yum源在172.25.3.250這臺機器上。所以我們需要部署salt的機器上的yum的配置如下。

[salt]
name=saltstack_soft
baseurl=ftp://172.25.3.250/pub/saltstack/saltstack/rhel6
enabled=1
gpgcheck=0

開始安裝
salt1:

[root@salt1 ~]# yum install -y salt-master salt-minion

slat2:

[root@salt2 ~]# yum install -y salt-minion

3.配置
salt的配置也十分簡單,master不用動,只需修改minion,使其知道自己的msater是誰即可。

vim /etc/salt/minion

master: 172.25.3.100

4.啟動服務
salt1:

[root@salt1 ~]# /etc/init.d/salt-master status
salt-master (pid  1022) is running...
[root@salt1 ~]# /etc/init.d/salt-minion status
salt-minion:root:salt1.mo.com is running: 2332

salt2:

[[email protected] ~]# /etc/init.d/salt-minion status
salt-minion:root:salt2.mo.com is running: 1355

5.配置認證
1).服務端與客戶端認證連線

[root@salt1 ~]# salt-key 
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:

直接輸入salt-key檢視現在key的情況,只有出現在Accepted Keys中的才是允許的客戶端。
現在我們將自己salt1與salt2新增進去。

[[email protected] master]# salt-key -a salt1.mo.com
The following keys are going to be accepted:
Unaccepted Keys:
salt1.mo.com
Proceed? [n/Y] y           
Key for minion salt1.mo.com accepted.

[[email protected] master]# salt-key -a salt2.mo.com
The following keys are going to be accepted:
Unaccepted Keys:
salt2.mo.com
Proceed? [n/Y] y
Key for minion salt2.mo.com accepted.

當出現如下報錯時:

The key glob 'salt2.mo.com' does not match any unaccepted keys.

可能是你之前接收過該節點,卻又刪除了,請重啟相應節點的salt-minion即可。
現在再檢視一遍,key的接收情況

[[email protected] master]# salt-key 
Accepted Keys:
salt1.mo.com
salt2.mo.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:

說明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all。可以使用 salt-key 命令檢視到已經簽名的客戶端。此時我們在客戶端的 /etc/salt/pki/minion 目錄下面會多出一個minion_master.pub 檔案。

2)測試通訊是否正常

[[email protected] master]# salt '*' test.ping
salt1.mo.com:
    True
salt2.mo.com:
    True

如上顯示,證明通訊正常
3)遠端執行命令測試

[root@salt1 master]# salt '*' cmd.run 'ip addr show'
salt2.mo.com:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 52:54:00:f0:10:ce brd ff:ff:ff:ff:ff:ff
        inet 172.25.3.101/24 brd 172.25.3.255 scope global eth0
        inet6 fe80::5054:ff:fef0:10ce/64 scope link 
           valid_lft forever preferred_lft forever
salt1.mo.com:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 52:54:00:6c:98:48 brd ff:ff:ff:ff:ff:ff
        inet 172.25.3.100/24 brd 172.25.3.255 scope global eth0
        inet6 fe80::5054:ff:fe6c:9848/64 scope link 
           valid_lft forever preferred_lft foreve

上面執行的命令中*表示所有已經被接受過的客戶端。

二.saltstack應用

1.配置雙機haproxy
haproxy可以直接使用yum安裝,所以我們直接使用salt自帶的pkg模組進行haproxy的配置。而且為了將配置檔案修改成負載均衡模式,我們還要使用檔案管理模組。

1)配置
開啟如下注釋內容,使salt-master知道,相應部署配置檔案的定義位置。

[root@salt1 ~]# vim /etc/salt/master
file_roots:
  base:
    - /srv/salt/

2)配置top檔案,確定執行順序
我們業務的執行順序是,安裝包,同步檔案,所以top.sls檔案內容如下:

base:
    'salt2.mo.com':
    - install_pkg
    - conf

3)配置包服務最終狀態與配置檔案的同步
install_pkg.sls

haproxy-service:
    pkg.installed:
        - names:
            -haproxy
    service.running:
        - name: haproxy
        - enable: True         

conf.sls:

[[email protected] salt]# cat conf.sls 
haproxy-conf:
    file.managed:
        - name: /etc/haproxy/haproxy.cfg
        - source: salt://haproxy.cfg
        - user: root
        - group:root
        - mode: 777 

4)執行

[[email protected] salt]# salt 'salt2.mo.com' state.highstate
salt2.mo.com:
----------
          ID: haproxy-service
    Function: pkg.installed
        Name: haproxy
      Result: True
     Comment: The following packages were installed/updated: haproxy
     Started: 17:57:11.655588
    Duration: 6911.527 ms
     Changes:   
              ----------
              haproxy:
                  ----------
                  new:
                      1.4.24-2.el6
                  old:
----------
          ID: haproxy-service
    Function: service.running
        Name: haproxy
      Result: True
     Comment: Service haproxy has been enabled, and is running
     Started: 17:57:18.580255
    Duration: 332.323 ms
     Changes:   
              ----------
              haproxy:
                  True
----------
          ID: haproxy-conf
    Function: file.managed
        Name: /etc/haproxy/haproxy.cfg
      Result: True
     Comment: File /etc/haproxy/haproxy.cfg updated
     Started: 17:57:18.916540
    Duration: 155.754 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -84,3 +84,7 @@
                       server  app3 127.0.0.1:5003 check
                       server  app4 127.0.0.1:5004 check

                  +listen mo *:80
                  +    balance     roundrobin  
                  +    server      static 172.25.3.250 check 
                  +    server      static 172.25.3.101 check 
              mode:
                  0777

Summary for salt2.mo.com
------------
Succeeded: 3 (changed=3)
Failed:    0
------------
Total states run:     3
Total run time:   7.400 s

執行成功,去salt2上看下是否正確執行。

[[email protected] html]# /etc/init.d/haproxy status
haproxy (pid  2736) is running...
[[email protected] html]# tail -5 /etc/haproxy/haproxy.cfg 

listen mo *:80
    balance     roundrobin  
    server      static 172.25.3.250 check 
    server      static 172.25.3.101 check 

5).注意事項
編寫salt配置檔案一定要注意縮排與空格

1.haproxy-service:
2.    pkg.installed:
3.        - names:
4.            -haproxy
5.    service.running:
6.        - name:haproxy
7.        - enable: True

比如上面就是一個錯誤的配置,錯誤出現在第四行’-‘與’haproxy’一定要有空格,第六行’:’與’haproxy’也要有空格。

2.配置keepalived雙機叢集
keepalived需要原始碼安裝,所以剛才的使用pkg安裝模組不能使用了,需要我們使用命令來安裝了。首先把部署邏輯想好,這是十分重要的。
現在有salt1與salt2兩臺機器。salt1作為keepalived主,salt2作為keepalived從。
部署邏輯:
安裝keepalived:
將原始碼包同步到salt1/salt2
解壓原始碼包
解決原始碼包安裝時的依賴條件
原始碼包安裝
配置keepalived環境
配置keepalived:
根據master與salve不同,同步不同的配置檔案
同步監控指令碼檔案
根據上述邏輯,寫好的salt指令碼邏輯如下:

[[email protected] salt]# tree /srv/salt/
/srv/salt/
├── conf1.sls
├── conf-keep-master.sls
├── conf-keep-slave.sls
├── conf.sls
├── haproxy
│   └── haproxy.cfg
├── install-keep.sls
├── install_pkg.sls
├── keepalived
│   ├── check_haproxy
│   ├── keepalived-1.2.24.tar.gz
│   ├── keepalived-master.conf
│   └── keepalived-slave.conf
└── top.sls

top.sls:

base:
    'salt2.mo.com':
        - install-keep
        - conf-keep-slave
    'salt1.mo.com':
        - install-keep
        - conf-keep-master

install-keep.sls:

#install keepalived
keepalived-source:
    file.managed:
        - name: /root/keepalived-1.2.24.tar.gz
        - source: salt://keepalived/keepalived-1.2.24.tar.gz
        - user: root
        - group: root
        - mode: 644
#tar source keepalived
keepalived-tar:
    cmd.run:
        - cwd: /root
        - names:
            - tar -xf keepalived-1.2.24.tar.gz
        - user: root
#install keepalived require
keepalived-require:
    pkg.installed:
        - pkgs:
            - gcc
            - openssl-devel
#install keepalived in source package
keepalived-source-install:
    cmd.run:
        - cwd: /root/keepalived-1.2.24
        - names:
            - ./configure --prefix=/usr/local/keepalived
            - make
            - make install
        - require:
            - cmd: keepalived-tar
            - pkg: keepalived-require
        - unless: test -d /usr/local/keealived
#configure keepalived environment
keepalived-env:
     cmd.run:
         - names:
             - ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
             - chmod a+x /etc/init.d/keepalived
             - ln -s /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
             - ln -s /usr/local/keepalived/sbin/keepalived /sbin/
             - ln -s /usr/local/keepalived/etc/keepalived /etc/
         - require:
             - cmd: keepalived-source-install

conf-keep-master.sls:

#keepalived conf master
keepalived-conf:
    file.managed:
        - name: /etc/keepalived/keepalived.conf
        - source: salt://keepalived/keepalived-master.conf
        - user: root
        - mode: 755
#keepalied healthy check script
keepalived-check-script:
    file.managed:
        - name: /opt/check_haproxy
        - source: salt://keepalived/check_haproxy
        - user: root
        - mode: 755

conf-keep-slave與master只是修改了不同的keepalived配置檔案。

我們整個線上服務的配置無外乎上面兩種使用salt的方式,如果能理解上面的指令碼,那麼使用salt配置該服務業就非常容易了,下面讓我們進入正題。

三.使用salt配置完整線上服務

1.前端高可用負載均衡業務的部署
根據剛才二中所描述的,我們把兩步和在一起,相當於把我們的線上系統的兩臺前端haproxy負載均衡叢集自動化部署好。
salt目錄的結構如下:

/srv/salt/
├── conf-haproxy.sls            
├── conf-keep-master.sls
├── conf-keep-slave.sls
├── haproxy
│   └── haproxy.cfg
├── install-haproxy.sls
├── install-keep.sls
├── keepalived
│   ├── check_haproxy
│   ├── keepalived-1.2.24.tar.gz
│   ├── keepalived-master.conf
│   └── keepalived-slave.conf
└── top.sls

top.sls:

base:
    'front2.mo.com':
        - install-haproxy
        - conf-haproxy
        - install-keep
        - conf-keep-slave 
    'front1.mo.com':
        - install-haproxy
        - conf-haproxy
        - install-keep
        - conf-keep-master

仍然是先理清主要思路,我們前端的兩臺負載均衡的host分別是front1.mo.com與front2.mo.con,因為還要使用keepalived作高可用,所以配置檔案會有所不同,我們將其分成了兩個部分。
install-haproxy:安裝haprxoy包並使haproxy開啟

haproxy-service:
    pkg.installed:
        - names:
            - haproxy
    service.running:
        - name: haproxy
        - enable: True

conf-haproxy:將salt-masters上haproxy配置檔案同步至salt-minoin上。並重啟haproxy服務

haproxy-conf:
    file.managed:
        - name: /etc/haproxy/haproxy.cfg
        - source: salt://haproxy/haproxy.cfg
        - user: root
        - group: root
        - mode: 777 
haproxy-restart:
    cmd.run:
        - names:
            - /etc/init.d/haproxy restart

install-keep:負責分發keepalived原始碼包,並解壓,編譯,部署keepalived環境

#install keepalived
keepalived-source:
    file.managed:
        - name: /root/keepalived-1.2.24.tar.gz
        - source: salt://keepalived/keepalived-1.2.24.tar.gz
        - user: root
        - group: root
        - mode: 644
#tar source keepalived
keepalived-tar:
    cmd.run:
        - cwd: /root
        - names: 
            - tar -xf keepalived-1.2.24.tar.gz
        - user: root 
        - unless: test -d keepalived-1.2.24
#install keepalived require
keepalived-require:
    pkg.installed:
        - pkgs:
            - gcc
            - openssl-devel
#install keepalived in source package
keepalived-source-install:
    cmd.run:
        - cwd: /root/keepalived-1.2.24
        - names:
            - ./configure --prefix=/usr/local/keepalived
            - make
            - make install
        - require:
            - cmd: keepalived-tar
            - pkg: keepalived-require
        - unless: test -d /usr/local/keealived
#configure keepalived environment
keepalived-env:
     cmd.run:
         - names:
              - chmod a+x /usr/local/keepalived/etc/rc.d/init.d/keepalived
              - ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
              - ln -s /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
              - ln -s /usr/local/keepalived/sbin/keepalived /sbin/
              - ln -s /usr/local/keepalived/etc/keepalived /etc/
         - require:
             - cmd: keepalived-source-install
         - unless: test -e /etc/init.d/keepalived
         - user: root

conf-keep-master.sls/conf-keep-slave.sls:兩個配置檔案基本相似,只是同步的配置檔案不同,負責同步keepalived配置檔案,同步keepalived指令碼,最後開啟keepalived,這裡配置的時候發現了一個坑,總結起來是因為自己基礎問題沒有搞清楚,就是軟連線的許可權問題,將一個指令碼軟連線到另一個目錄下,如果原始檔沒有執行許可權,就算給了軟連線後文件執行許可權也是沒有用的。

#keepalived conf master
keepalived-conf:
    file.managed:
        - name: /etc/keepalived/keepalived.conf
        - source: salt://keepalived/keepalived-master.conf
        - user: root
        - mode: 755
#keepalied healthy check script
keepalived-check-script:
    file.managed:
        - name: /opt/check_haproxy
        - source: salt://keepalived/check_haproxy
        - user: root
        - mode: 755
#keepalived start
keepalived-start:
     cmd.run:
        - names:
            - chkconfig keepalived on
            - /etc/init.d/keepalived start

2.整個後端服務的搭建
後端服務其實就是一個lnmp框架,nginx採用原始碼安裝方式,我們套用二中方法既可,php採用yum安裝,mysql採用yum安裝並且進行主從的配置,其中在Mysql取隨機密碼的時候踩了個坑,就是Yaml格式對:的識別問題,因為awk若要以’:’分割可以用如下寫法

awk -F: '{print $NF}'

但是這個:會被識別為別的符號,所以我們只有採用下面的寫法,才不會報錯

awk -F ':' '{print $NF}'
還有關於mysql5.7你第一次想在命令列執行sql語句(也就是使用-e引數)時候需要新增一個引數就是'--connect-expired-password'才可以。

現在看一下整體的saltsatck指令碼樹。

/srv/salt/
├── conf-haproxy.sls
├── conf-keep-master.sls
├── conf-keep-slave.sls
├── conf-mysql-master.sls
├── conf-mysql-slave.sls
├── conf-nginx.sls
├── conf-php.sls
├── haproxy
│   └── haproxy.cfg
├── install-haproxy.sls
├── install-keep.sls
├── install-memcached.sls
├── install-mysql.sls
├── install-nginx.sls
├── install-php.sls
├── keepalived
│   ├── check_haproxy
│   ├── keepalived-1.2.24.tar.gz
│   ├── keepalived-master.conf
│   └── keepalived-slave.conf
├── mysql
│   ├── my.cnf
│   ├── my-master.cnf
│   ├── my-slave.cnf
│   └── mysql.repo
├── nginx
│   ├── nginx-0.7.69.tar.gz
│   └── nginx.conf
├── php
│   ├── php.ini
│   └── php.repo
├── test
├── top.sls
├── top.sls.bak
└── top.sls.bak2

top.sls:整個後端的安裝邏輯

[[email protected] salt]# cat top.sls.bak2 
base:
     'salt1.mo.com':
        - install-nginx 
        - conf-nginx
        - install-php
        - conf-php
        - install-memcached
        - install-mysql
        - conf-mysql-master
     'front1.mo.com'
        - install-nginx 
        - conf-nginx
        - install-php
        - conf-php
        - install-memcached
        - install-mysql
        - conf-mysql-slave

**install-nginx:**nginx原始碼檔案的同步,原始碼包的解壓,nginx原始碼安裝依賴的解決,編譯nginx

#copy nginx source code package 
copysource-nginx:
    file.managed:
        - name: /root/nginx-0.7.69.tar.gz
        - user: root
        - mode: 755
        - source: salt://nginx/nginx-0.7.69.tar.gz
        - unless: test -e /root/nginx-0.7.69.tar.gz
#extra nginx package
tar-nginx:
     cmd.run:
         - cwd: /root
         - names:
             - tar -xf nginx-0.7.69.tar.gz
         - onlyif: test -e /root/nginx-0.7.69.tar.gz
#solove nginx source make require
require-nginx:
     pkg.installed:
         - pkgs:
             - gcc
             - pcre-devel
#configure and make nginx
compile-nginx:
     cmd.run:
         - cwd: /root/nginx-0.7.69
         - names:
             - ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
             - make && make install
         - require:
             - cmd: tar-nginx
             - pkg: require-nginx

conf-nginx:同步nginx的配置檔案,部署nginx執行環境

#nginx configure file 
conf-nginx:
    file.managed:
        - name: /usr/local/nginx/conf/nginx.conf
        - user: root
        - mode: 755
        - source: salt://nginx/nginx.conf
#running nginx
execute-nginx:
    cmd.run:
        - names:
            - ln -s /usr/local/nginx/sbin/nginx /usr/sbin && nginx
        - user: root

install-php:同步php安裝yum源,說明需要安裝的php包

yumrepo-php:
    file.managed:
       - name: /etc/yum.repos.d/php.repo
       - user: root
       - mode: 755
       - source: salt://php/php.repo
       - unless: test -e /etc/yum.repos.d/php.repo
install-php:
    pkg.installed:
       - pkgs:
           - php-5.3.3-49.el6
           - php-fpm-5.3.3-49.el6
           - php-cli-5.3.3-49.el6
           - php-mysql-5.3.3-49.el6
           - php-common-5.3.3-49.el6
           - php-pdo-5.3.3-49.el6
    service.running:
        - name: php-fpm
        - enable: True

conf-php:同步php配置檔案

**conf-phpini:**
    file.managed:
        - name: /etc/php.ini
        - user: root
        - mode: 755
        - source: salt://php/php.ini

install-memcached:安裝memcached,並重啟php-fpm

#memcache pkg install
install-memcached:
    pkg.installed:
        - pkgs:
            - memcached
            - php-pecl-memcache
    service.running:
        - name: memcached
        - enable: True
#reboot php-fpm
restart-phpfpm:
    cmd.run:
        - names:
            - /etc/init.d/php-fpm restart

install-mysql:同步mysql5.7yum源,說明安裝哪些mysql包

#copy mysql yum pkg file
copypkg-mysql:
    file.managed:
        - name: /etc/yum.repos.d/mysql.repo
        - user: root
        - mode: 755
        - source: salt://mysql/mysql.repo
#yum pkg install mysql

    pkg.installed:
        - pkgs:
            - mysql-community-server-5.7.18
    service.running:
        - name: mysqld
        - enable: True

conf-mysql-master:同步mysql-master的配置檔案,重啟mysql,更新mysql密碼,建立repl使用者。

#conf mysql masetr
conf-mysql:
    file.managed:
        - name: /etc/my.cnf
        - user: root
        - mode: 755
        - source: salt://mysql/my-master.cnf
#restart mysql
restart-mysql:
    cmd.run:
        - name: /etc/init.d/mysqld restart
        - user: root

#modify ini-password
updatepass-mysql:
    cmd.run:
        - name: pass=`cat /var/log/mysqld.log | grep 'temporary password'| awk -F ':' '{print $NF}'` && mysql -uroot -p`echo $pass` --connect-expired-password -e "alter user [email protected] identified by 'Redhat+001';"
        - user: root
#create repl host
repluser-mysql:
    cmd.run:
       - names:
           - mysql -uroot -p'Redhat+001' -e "grant replication slave on *.* to 'repl'@'localhost' identified by 'Redhat+001'"

mysql-slave:同步mysql-slave配置檔案,重啟mysql,重置mysql密碼,設定mysql-master

#conf mysql masetr
conf-mysql:
    file.managed:
        - name: /etc/my.cnf
        - user: root
        - mode: 755
        - source: salt://mysql/my-slave.cnf
#restart mysql
restart-mysql:
    cmd.run:
        - name: /etc/init.d/mysqld restart
        - user: root

#modify ini-password
updatepass-mysql:
    cmd.run:
        - name: pass=`cat /var/log/mysqld.log | grep 'temporary password'| awk -F ':' '{print $NF}'` && mysql -uroot -p`echo $pass` --connect-expired-password  -e "alter user [email protected] identified by 'Redhat+001';"
        - user: root
#change master to master
repluser-mysql:
    cmd.run:
        - names:
            - mysql -uroot -p'Redhat+001' -e "CHANGE MASTER TO MASTER_HOST='172.25.3.100',MASTER_USER='repl',MASTER_PASSWORD='Redhat+001',MASTER_AUTO_POSITION=1;" && mysql -uroot -p'Redhat+001' -e 'START SLAVE;'

相關推薦

筆記43 使用saltstack配置完整線上服務(haproxy+keepalived,nginx+php+memcache,mysql主從)

概述: 之前我們所介紹過了很多實用的服務,有負載均衡類的,web服務類的,資料庫類的等等,這些服務有的配置容易,有的配置困難,那我們現在設想一下在生成環境中,有上百臺,甚至上千臺伺服器的情況下,難道要我們去挨個去配置每一臺伺服器嗎,這是無法想象的,所以有了sa

自動化系列之SaltStack批量部署Apache服務

col .com 函數 base cat 通過 color 生效 thead 自動化運維系列之SaltStack批量部署Apache服務 saltstack原理 SalStack由master和minion構成,master是服務端,表示一臺服務器;minion是客戶端,

菜鳥筆記:安裝與配置Apacheserver

str .cn apach tps 官網 壓縮 ron entos 本地 前幾天在在阿裏花了49.5買了一個月的主機。試著好用再續費吧。 地域:青島可用區:青島可用區ACPU:1核內存:512MB帶寬:1Mbps操作系統:CentOS 6.5 64位雲盾:是

計算機配置與組策略配置的區別---筆記

軟件設置 區別 計算機配置 範圍 域用戶 運維 策略 windows 指正 組策略配置計算機和用戶的不同點在其應用範圍。 若組策略對計算機進行了配置,則受配置計算機的軟件設置,Windows 設置,管理分配等都直接受組策略影響。若組策略對用戶進行了配置,則只有計算機用用戶賬

菜鳥筆記配置Apache二級域名及WWW訪問

其實www訪問也可以理解為二級域名的一種。 域名 比如.com、.org、.edu、.gov、.info、.net等等都是一級域名,或稱頂級域名。 其具體格式是 *.頂級域名,比如csdn.net。而二級域名比如:bbs.csdn.net、blog.csdn.net。

筆記33 (haproxy配置,pacemaker高可用+haproxy

概述:之前的部落格中提到的一種負載均衡方式是lvs,lvs的配置簡單,減少了認為出錯的概率,而且軟體處在tcp/ip協議棧的第四層,可以對各種web應用服務,但是因為本身不支援正則表示式處理,不能做動靜分離。那麼今天的haproxy的優勢就體現出來了,能夠支援虛

自動化之Saltstack使用詳解

自動化運維 saltstack 概要saltstack是基於Python開發的C/S架構的一款批量管理工具,底層采用動態的連接總線(ZeroMQ消息隊列pub/sub方式通信),使用ssl證書簽發的方式進行認證管理,使其可以用於編配, 遠程執行, 配置管理等等。部署輕松,在幾分鐘內可運行起來,擴展性好

Linux筆記(一)網絡基礎知識

使用 可靠 height image inter 電話線 ppp協議 網址 esp 網絡基礎知識 一、基本概念 1.ARPANET & TCP/IP:以“軟件”技術將網絡硬件整合,使得不同的計算機或者數據可以通過這個軟件達成數據溝通(TCP/IP技術也被稱為Inte

Linux實戰之DNS(bind)服務器的安裝與配置

tle 同時 文件句柄 服務器端 date bka rync adt 發展 【本次博文的主要內容】 bind服務器簡介(包括客戶端工具dig的介紹) 配置正向解析DNS服務器 配置反向解析DNS服務器 配置輔助DNS服務器並在主輔之間實現區域傳送 一、BIND服務器簡

自動化工具之Saltstack

自動化 運維工具 saltstack 一、簡介what is Saltstack?Saltstack是一個具備puppet與func功能為一身的集中化管理平臺,saltstack基於python實現,功能十分強大,適合大規模批量管理服務器,並且它比 Puppet 更容易配置。saltstack具

CSS樣式表概述---筆記

相同 內容 因此 id選擇器 對象 內部 直接 css 註意事項 CSS是一種標記語言,因此不需要編譯,可以由瀏覽器直接執行。 樣式表分為內部樣式表與外部樣式表,由樣式規則組成,一個樣式的基本語法包括三部分:選擇器,屬性,屬性值。 選擇器:表示修飾對象,包括標簽選擇器,類選

自動化工具之SaltStack-1、SaltStack介紹及安裝

自動生成 模塊 模糊匹配 mini 說明 pac roc redhat 通信 1、SaltStack簡介 官方網址:http://www.saltstack.com官方文檔:http://docs.saltstack.comGitHub:https:github.com/s

計算機行過程---筆記

命令 風扇 行存儲 部件 電源 操作 dram 運維筆記 用戶輸入 1.加電––––打開電源開關,給主板和內部風扇供電。 2.啟動引導程序––––CPU開始執行存儲在ROM BIOS中的指令。 3.開機自檢––––計算機對系統的主要部件進行診斷測試。 4.加載操作系統–––

[筆記] Mysql單庫備份腳本

ash bin nbsp mysqldump zab date user tran 127.0.0.1 工作中用到的Mysql單庫備份Shell腳本,壓縮備份,並在Crontab中添加計劃任務,最多保存60天的備份 #!/bin/bash . /etc/prof

計算機網絡概述---筆記

階段 負載 分組 提高 能力 並行 配置 運維 融合 1.什麽是計算機網絡:計算機網絡將來兩臺或多臺計算機通過通信設備和線路將計算機連接在一起,並配置相應的系統和應用軟件,實現軟硬件資源共享和信息傳遞。 2.計算機網絡功能:數據通信:利用網絡來傳輸各種信息和數據。資源共享:

AD活動目錄概述--筆記

屬性 連續 名稱空間 工作環境 安全 針對 子網 配置 計算機 1.活動目錄的基本概念(1)域和域控制器:域是活動目錄的一種實現形式,也是活動目錄最核心的管理單位。(2)名稱空間:一個區域的名字(3)對象和屬性:對象代表的是具體事務,屬性是用來描述對象的數據。(4)容器:存

綜合布線設計---筆記

實施 辦公 垂直 運維 偏差 水平 模塊 線纜 信息 布線實施: (1)墻壁打孔(孔的直徑,美觀) (2)線槽安裝(水平2mm垂直3mm偏差2mm距地30cm固定點2-3個螺釘,線槽蓋板緊) (3)布設線纜(線纜占用空間不超盒70%) (4)端接線纜:(將配線間的線纜端接到

組策略應用----筆記

容器 篩選 默認 所有 鏈接 包括 今天 gpo 規則 今天學習了組策略應用。大致分為三個部分:組策略簡介,創建組策略,組策略的應用規則。 組策略是位於控制面板與註冊表之間的用於修改程序和系統配置的一種機制。它可以有效避免單機配置的失誤,對特定用戶制定特定策略,集中配置策略

操作主機---筆記

最小化 屬性。 命名 名稱 添加 其他 變化 序列號 對象 今天學習了操作主機,操作主機主要負責多主復制結構的活動目錄所不能操作的更改。 操作主機分為架構主機,域命名主機,RID主機,PDC仿真主機和基礎結構主機。 架構主機負責域林內的對象和屬性。 域命名住居負責域的添加刪

AD常見故障排查---筆記

AD常見故障排查---運維筆記 在維護AD的時候會經常出現一些故障,良好的問題解決方法,可以在盡可能短時間內解決問題。 一·常見故障類型 (1)域連接失敗:加入域時,提示找不到域。 (2)域無法登陸:登錄時密碼不正確或登錄後訪問不了共享資源。 (3)域登錄緩慢:登錄時非常緩慢 。 (4)組策略部署失敗:組策略