顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - zarr12steven

頁: [1]
1
這邊有個小問題要請教一下,各位大大,centos7裡的firewalld都是怎麼處理?

我先說一下我自已,我是把原有的firewalld給disalbe,然後改用iptables
而我會這麼做的原因,其實很簡單,就是對iptables較不陌生,所以就這樣改了

2
Ansible 使用 mysql_db & mysql_user 模組
這次剛好有機會使用ansible的資料庫模組,所以就紀錄一下筆記

首先在官網 http://docs.ansible.com/ansible,點選 Module Index 這裡就有提供很多模組可以使用,這次我使用的是 Database Modules,點進來後就找 mysql_db & mysql_user,這是我這次主要用的二個模組。

第一次建立資料庫無非就是下列四件事:

  • 修改root密碼
  • 新建資料庫
  • 新建使用者
  • 給使用者特定的權限

先介紹一下我使用的環境

SYSTEM VERSION
代碼: [選擇]
CentOS Linux release 7.2.1511 (Core)

ANSIBLE VERSION
代碼: [選擇]
ansible 2.1.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides


STEPS TO REPRODUCE

代碼: [選擇]
---
- name: Setup | Percona XtraDB Cluster
  hosts: db
  tasks:
    - name: Setup | Percona yum Repository
      yum: name=http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm state=present

    - name: Setup | Install EPEL Repository
      yum: name=epel-release update_cache=yes state=present

    - name: Setup | Install Percona-XtraDB-Cluster-56 Package
      yum: name=Percona-XtraDB-Cluster-56 update_cache=yes state=present

    - name: Setup | Install Requirement Packages
      yum: name={{ item }} state=present  update_cache=yes
        # 裝這二個套件主要是要讓控制端主機要有MySQL的libary,這樣才能與遠端的主機裡的資料庫做溝通,如果沒有的話就會出現 "the python mysqldb module is required"
     with_items:
        - mysql-devel    # 本機端的libary
        - MySQL-python   # 給python用的libary

    - name: Setup | Create Mysql Data Directories
      file: path={{ item }} state=directory recurse=yes owner=mysql group=mysql mode=0755
      with_items:
        - /var/log/mysql

    - name: Setup | Mysql Configuration
      # 使用 Jinja2 的範本,來做設定檔的維護
      template: src=./templates/my_cnf_test.j2 dest=/etc/my.cnf
      # 這個變數會套進剛剛設定的my_cnf_test.j2
      vars:
        - gcomm_list: 192.168.1.100
      # notify 是用來觸發事件,通常會跟handlers一起使用,而且只會跑一次,在此劇本目前只會觸發二件事,一個啟動mysql service,另一個是更新root密碼
      notify:
        - restart_mysql
        - Update MySQL root password
        - Create Database

  # handlers 事件處理器,也就是被notify所調用
  handlers:
    - name: restart_mysql
      service: name=mysql@bootstrap.service  state=restarted

    - name: Update MySQL root password
      run_once: true
      mysql_user:
      # 有驗証的登入使用者
        login_user=root
      # 登入者的密碼
        login_password="\n"
      # 建立使用者的名字或是已存在的使用者
        name=root
      # 設定密碼
        password='123456789'
      # 設定權限; 語法是: 資料庫.資料表:權限1,權限2
      # 小建議,如果是設定權限時,最好是用雙引號包起來,避免會有語法上的錯誤
        priv=*.*:ALL,GRANT
      # host預設就是localhost,如果有要連別的主機就可以用這選項
        host={{ item }}
      # present=安裝 absent=移除
        state=present
      # 檢查MySQL允許用root/NOPASSWORD登入之前嘗試提供憑証(這個不設也可以用)
        check_implicit_admin=True
      with_items:
        - localhost

    - name: Setup | Create MySQL Database
      mysql_db:
      # 有驗証的登入使用者
        login_user=root
      # 使用者的登入密碼
        login_password='123456789'
      # 建立資料庫的名稱
        name=Apple
      # present=安裝 absent=移除
        state=present

templates/my_cnf_test.j2

代碼: [選擇]
[mysqld]
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so
# Cluster connection URL
wsrep_cluster_address=gcomm://{{ gcomm_list }}
# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB
# This changes how |InnoDB| autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2


ACTUAL RESULTS

代碼: [選擇]
PLAY [Setup | Percona XtraDB Cluster] **************************************************

TASK [setup] *******************************************************************
ok: [db]

TASK [Setup | Percona yum Repository] ******************************************
changed: [db]

TASK [Setup | Install EPEL Repository] *****************************************

changed: [db]

TASK [Setup | Install Percona-XtraDB-Cluster-56 Package] ***********************
changed: [db]

TASK [Setup | Install Requirement Packages] ************************************
changed: [db] => (item=[u'mysql-devel', u'MySQL-python'])

TASK [Setup | Create Mysql Data Directories] ***********************************
changed: [db] => (item=/var/log/mysql)

TASK [Setup | Mysql Configuration] *********************************************
changed: [db]

RUNNING HANDLER [restart_mysql] ************************************************
changed: [db]

RUNNING HANDLER [Update MySQL root password] ***********************************
changed: [db] => (item=localhost)

RUNNING HANDLER [Create MySQL Database] ****************************************
changed: [db]

PLAY RECAP *********************************************************************
db                         : ok=10   changed=9    unreachable=0    failed=0


3
DevOps 討論版 / [docker] DCOS 筆記
« 於: 2016-05-05 16:44 »
CentOS install DC/OS

代碼: [選擇]
$ sudo yum update -y && sudo yum upgrade -y
Please check your kernel version

代碼: [選擇]
$ uname -r
3.10.0-327.10.1.el7.x86_64

Docker requirements

Docker 1.7 or greater must be installed on all bootstrap and cluster nodes.

Docker recommendations

  • Docker 1.9 or greater is recommended for stability reasons.
  • Do not use Docker devicemapper storage driver in loop-lvm mode.
  • Prefer OverlayFS or devicemapper in direct-lvm mode when choosing a production storage driver.
  • Manage Docker on CentOS with systemd.
  • Run Docker commands as the root user (with sudo) or as a user in the docker user group.

Setting Overlay script for CentOS7

代碼: [選擇]
#!/bin/bash

#####
# Basic tool
#####

yum -y install curl git tig tree vim wget
yum -y groupinstall "Development Tools"

#####
# Docker Repo
#####

DOCKER_REPO="/etc/yum.repos.d/docker.repo"

if [ -f ${DOCKER_REPO} ]; then
    echo -e "\033[0;33;40mDocker Repo exist\033[0m"
    echo -e "\033[0;36;40mInstall Docker Engine\033[0m"
    yum install -y docker-engine
    echo -e "\033[0;32;40mdone\033[0m"
else
    echo -e "\033[0;36;40mSetting Docker Repo\033[0m"
    tee ${DOCKER_REPO} <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
    echo -e "\033[0;32;40mdone\033[0m"

    echo -e "\033[0;36;40mInstall Docker Engine\033[0m"
    yum install -y docker-engine
    echo -e "\033[0;32;40mdone\033[0m"
fi

sleep 2
#####
# Enable Overlay module
#####

lsmod | grep overlay >> /dev/null
check_overlay=$?

if [ ${check_overlay} = 0 ]; then
    echo -e "\033[0;33;40mAlready Enabled overlay module\033[0m"
else
    echo -e "\033[0;36;40mEnable overlay module\033[0m"
    modprobe overlay
    echo -e "\033[0;32;40mdone\033[0m"
fi

sleep 2
#####
# Setting Disk and mount
####

HDD_DEVICE="`cat /var/log/messages | grep 'unknown partition table' | awk '{print $6}' | cut -d: -f1 | head -n 1`"
OVERLAY_DIR="/var/lib/docker/overlay"

if [ -b /dev/${HDD_DEVICE}1 ]; then
    echo -e "\033[0;33;40m${HDD_DEVICE}1 exist\033[0m"
else
    echo -e "\033[0;36;40mFormate Disk\033[0m"
    echo "n
p
1


w
"|fdisk /dev/${HDD_DEVICE}; mkfs.ext4 /dev/${HDD_DEVICE}1
    echo -e "\033[0;32;40mdone\033[0m"
fi

sleep 2

if [ -d ${OVERLAY_DIR} ]; then
    echo -e "\033[0;33;40m${OVERLAY_DIR} exist\033[0m"
else
    echo -e "\033[0;36;40mCreating ${OVERLAY_DIR} directoy\033[0m"
    mkdir -p ${OVERLAY_DIR}
    echo -e "\033[0;32;40mdone\033[0m"
fi

sleep 2

cat /etc/fstab | grep 'overlay' >> /dev/null
check_uuid=$?
HDD_UUID_1="`blkid  /dev/${HDD_DEVICE}1 | awk '{print $2}' | sed 's/\"//g'`"

if [ ${check_uuid} = 0 ]; then
    echo -e "\033[0;33;40mfstab OK\033[0m"
else
    echo -e "\033[0;36;40mSetting fstab\033[0m"
    echo -n "${HDD_UUID_1}    ${OVERLAY_DIR}  ext4 defaults 0 2" >> /etc/fstab
    mount -a
    echo -e "\033[0;32;40mdone\033[0m"
fi

sleep 2
#####
# Setting Docker Engine
####

DOCKER_SERVICE="/usr/lib/systemd/system/docker.service"

grep '\-\-storage-driver=overlay' ${DOCKER_SERVICE} >> /dev/null
check_storage_driver=$?

if [ ${check_storage_driver} = 0 -a -f ${DOCKER_SERVICE} ]; then
  echo -e "\033[0;33;40mDocker Storage nothing to do\033[0m"
else
  echo -e "\033[0;36;40mSetting docker storage\033[0m"
  sed 12d -i ${DOCKER_SERVICE}
  sed "11 aExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://" -i ${DOCKER_SERVICE} >> /dev/null
  echo -e "\033[0;32;40mdone\033[0m"
fi

#####
# Enable Docker
#####

systemctl daemon-reload
systemctl start docker

On CentOS 7, firewalld must be stopped and disabled.

代碼: [選擇]
$ sudo systemctl stop firewalld && sudo systemctl disable firewalld
Data compression (advanced installer),to install these utilities on CentOS7 and RHEL7:

代碼: [選擇]
$ sudo yum install -y tar xz unzip curl ipset
Cluster permissions (advanced installer)

On each of your cluster nodes, use the following command to:

  • Disable SELinux or set it to permissive mode.
  • Add nogroup to each of your Mesos masters and agents.
  • Disable IPV6.

代碼: [選擇]
$ sudo sed -i s/SELINUX=enforcing/SELINUX=permissive/g /etc/selinux/config &&
  sudo groupadd nogroup &&
  sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 &&
  sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 &&
  sudo reboot

Download the DC/OS installer

代碼: [選擇]
curl -O https://downloads.dcos.io/dcos/EarlyAccess/dcos_generate_config.sh
Create a directory named genconf on your bootstrap each node.

代碼: [選擇]
sudo mkdir -p genconf && cd genconf

Create a ip-detect script

代碼: [選擇]
#!/usr/bin/env bash
set -o nounset -o errexit
export PATH=/usr/sbin:/usr/bin:$PATH
echo $(ip addr show eth0 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)

Create config.yaml. for exammple

代碼: [選擇]
---
agent_list:
- <agent_ip>
- <agent_ip>
- <agent_ip>
bootstrap_url: file:///opt/dcos_install_tmp
cluster_name: DCOS
exhibitor_storage_backend: static
ip_detect_filename: /genconf/ip-detect
master_discovery: static
master_list:
- <master_ip>
- <master_ip>
- <master_ip>
process_timeout: 10000
resolvers:
- 8.8.8.8
ssh_port: 22
ssh_user: <user_name>

Copy your private SSH key to genconf/ssh_key

代碼: [選擇]
$ cp <path-to-key> genconf/ssh_key && chmod 0600 genconf/ssh_key

Now you genconf will be like this and copy to each node

代碼: [選擇]
genconf/
├── config.yaml
├── ip-detect
└── ssh_key
$ scp -rp genconf username@<ip>:

Check help

代碼: [選擇]
$ sudo bash dcos_generate_config.sh --help
Running mesosphere/dcos-genconf docker with BUILD_DIR set to /home/centos/genconf
usage:
Install DC/OS

dcos_installer [-h] [-f LOG_FILE] [--hash-password HASH_PASSWORD] [-v]
[--web | --genconf | --preflight | --deploy | --postflight | --uninstall | --validate-config | --test]

Environment Settings:

  PORT                  Set the :port to run the web UI
  CHANNEL_NAME          ADVANCED - Set build channel name
  BOOTSTRAP_ID          ADVANCED - Set bootstrap ID for build

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         Verbose log output (DEBUG).
  --offline             Do not install preflight prerequisites on CentOS7,
                        RHEL7 in web mode
  --web                 Run the web interface.
  --genconf             Execute the configuration generation (genconf).
  --preflight           Execute the preflight checks on a series of nodes.
  --install-prereqs     Install preflight prerequisites. Works only on CentOS7
                        and RHEL7.
  --deploy              Execute a deploy.
  --postflight          Execute postflight checks on a series of nodes.
  --uninstall           Execute uninstall on target hosts.
  --validate-config     Validate the configuration in config.yaml
  --test                Performs tests on the dcos_installer application

Run this command for each master and node.

代碼: [選擇]
sudo bash dcos_generate_config.sh --install-prereqs
Run docker nginx for download install dcos_install.sh on master, and other node just download dcos_install.sh

代碼: [選擇]
sudo bash dcos_generate_config.sh
sudo docker run -d -p <port>:80 -v $PWD/genconf/serve:/usr/share/nginx/html:ro nginx

Create /tmp/dcos directory and download dcos_install.sh

代碼: [選擇]
mkdir -p /tmp/dcos && cd /tmp/dcos
curl -O http://<ip>:<port>/dcos_install.sh
sudo bash dcos_install.sh <role>
role must be master or slave

Now You can check

ZooKeeper http://<IP>:8181/exhibitor/v1/ui/index.html
Mesos http://<ip>:5050
DC/OS http://<ip>

Reference:
https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/
https://dcos.io/

I have two HDD, so I formate secondary HDD for docker storage.

4
Step 1: Verify you have the prerequisites

  • RHEL 7.0, 7.1
  • Ubuntu 14.04 LTS
  • CentOS 7.1

Setp 2: Install UCP

代碼: [選擇]
curl -fsSL https://get.docker.com/ | sh這個會去幫你自動裝docker engine

代碼: [選擇]
docker -v請務必確認要Docker version 1.10 or later,要不然會無法安裝UCP的。

代碼: [選擇]
sudo usermod -aG docker $USER把目前的使用者加入docker 群組裡面,這樣才能使用dokcer的指令,記得要重登一次。

代碼: [選擇]
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock --name ucp docker/ucp install -i這才是真正去裝UCP的指令,-i 是指互動模式

reference: https://github.com/docker/docker/releases

Step 3: Open browser

Login as "admin"/(your admin password) to UCP at https://IP:443

最後提一下,這個記得要去註冊一下https://hub.docker.com/enterprise/trial/,這樣就可以有30天試用了。

5
DevOps 討論版 / [docker] 自動建立gitbook pdf
« 於: 2016-02-05 13:56 »
Goal:

主要是要拿來讓大家有個共同寫文件的地方,並且在每次git push後,自動產生pdf的文件。

Step:

先準備好Dockerfile,然後直接執行docker-compose -f docker-compose.yml build,跑完之後再執行docker-compose -f docker-compose.yml up -d,這樣服務就都會起來,gitbook 開 80port,gitlab 開 10080 & 10022 port。

先至gitlab建立一個專案,至少先推一個README.md檔案,把這個專案clone下來,接下來就到project → 目前的專案 → Settings → Runners,此時會看到urltoken,需要把它記下來,再來就是將gitlab-runner 註冊在 gitlab-ci 上,

註冊方法如下:

代碼: [選擇]
docker exec -it NAME gitlab-runner register

請依照畫面跳出的訊息,做註冊,註冊完後就會看到有一個runner在剛剛runner的頁面,記得剛剛註冊的tag需要與.gitlab-ci.yml裡面的tag命名要一樣的,否則會執行失敗

.gitlab-ci.yml 這個檔案必須要存在你的專案的根目錄下,這個檔案主要用於決定 Gitlab CI 要如何對專案 build、test、deploy…等等。詳細的說明可以參考官方文件

補充:

  • gitbook目錄下,一定要有二個檔案,一個是README.md,另一個是SUMMARY.md,而SUMMARY.md這個是來管理你的book的結構,如果沒有這二個檔案請下gitbook init就會產生出來



範例如下:

代碼: [選擇]
# Summary

This is the summary of my book.

* [section 1](section1/README.md)
    * [example 1](section1/example1.md)
    * [example 2](section1/example2.md)
* [section 2](section2/README.md)
    * [example 1](section2/example1.md)
  • .gitlab-ci.yml裡面的image參數,它會去抓Docker registry,但如果內部有private Docker registry,寫法則會如下:

代碼: [選擇]
image: my.registry.tld:5000/namepace/image:tag

In the example above, GitLab Runner will look at my.registry.tld:5000 for the image namespace/image:tag.


非常感謝shuo & sameersbn 的資訊,上述所說的dokcerfile 都是撿現成的來用,所以可以直接去抓二位大神的dockerfile即可。

最後再廢話一句,這個模式後來是把gitbook 產出靜態檔出來後,丟給nginx去show畫面。

Reference:

https://github.com/shuo/docker-gitbook-builder
https://github.com/sameersbn/docker-gitlab
https://github.com/GitbookIO/gitbook
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md
http://doc.gitlab.com/ce/ci/docker/using_docker_images.html#define-an-image-from-a-private-docker-registryGitLab Documentation
http://doc.gitlab.com/ce/ci/yaml/README.html#using-a-private-docker-registry

6
拾人牙慧 / L2tp over IPSec on Ubuntu 12.04
« 於: 2014-04-30 19:45 »
L2TP Over IPSec
環境介紹:(在VirtualBox上實作,有做nat)

準備二台Ubuntu 12.04.4

一台叫Right, 一台叫Left

Right                                            Left
eth0 10.0.2.5 (DHPC取得IP)    eth0 10.0.2.6 (DHCP取得IP)
eth1 192.168.1.10 (Static IP)    eth1 192.168.2.10 (Static IP)

先安裝基本套件及所需的Repo

代碼: [選擇]
apt-get update
apt-get install python-software-properties
add-apt-repository ppa:xelerance/xl2tpd
add-apt-repository ppa:openswan/ppa
apt-get update

安裝L2TP套件

代碼: [選擇]
apt-get install xl2tpd

編輯設定檔 /etc/xl2tpd/xl2tpd.conf,這是主要要設定檔

代碼: [選擇]
[global]
ipsec saref = no

[lns default]                                   #Server端
ip range = 192.168.2.50-192.168.2.100           #要給Client端連進來的IP Scope
local ip = 192.168.2.1                          #給一個內網IP,並且不要跟現在內網有的IP重覆即可
require chap = yes                              #是否使用CHAP認証
require authentication = yes                     
ppp debug = yes                                 #log會在/var/log/syslog
pppoptfile =/etc/ppp/options.xl2tpd             #pppoe的設定檔案位置
length bit = yes

[lac username]                                  #Client端撥給對面的Server所用的名稱"username"
lns = 10.0.2.5                                  #自已的對外IP
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client 
length bit = yes

設定DNS及安全認証方式,/etc/ppp/options.xl2tpd

代碼: [選擇]
require-chap
ms-dns 8.8.8.8
lcp-echo-interval 10
lcp-echo-failure 3
auth
refuse-mschap-v2
refuse-mschap
asyncmap 0
auth
lock
hide-password
local
#debug
name l2tpd
proxyarp
mtu 1404
mru 1404

設定L2TP Client端的設定檔,/etc/ppp/options.l2tpd.client

代碼: [選擇]
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
replacedefaultroute
usepeerdns
debug
lock
connect-delay 5000
name username                                 #撥接時的帳號
password password                             #撥接時的密碼

新增Client端連線進來的帳號及密碼,/etc/ppp/chap-secrets,即為ppp服務
Client 指的使用者名稱
Server 指的是撥入Server的IP
IP addresses 指的是撥入後進來拿到IP的範圍,若先前有在xl2tpd.conf裡設定好ip range,此處就可以用*號表示

代碼: [選擇]
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
username     *         passwd                 *

重開L2tp

代碼: [選擇]
/etc/init.d/xl2tpd restart

連結L2TP Server,即連接到指定的lac
這個撥打過去,會跟Server端的/etc/ppp/chap/secrets做驗証,如果正確就連結。

代碼: [選擇]
echo 'c lac-name' > /var/run/xl2tpd/l2tp-control

安裝OPENSWAN套件

代碼: [選擇]
apt-get install openswan

IPSec主要設定檔,/etc/ipsec.conf
二台的IPSec的主要設定檔要長的一樣

代碼: [選擇]
version 2.0
config setup
    dumpdir=/var/run/pluto/
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
    oe=off
    protostack=netkey                   #default是auto,要改成netkey

conn net-net                           
    authby=secret
    left=10.0.2.5                       #設對方的對外IP
    leftsubnet=192.168.1.0/24           #設對方的內部網段
    leftnexthop=%defaultroute           #採預設路由的方式
    right=10.0.2.4                      #設自已的對外IP
    rightsubnet=192.168.2.0/24          #設自已的內部網段
    rightnexthop=%defaultroute          #採預設路由
    auto=start

編輯/etc/ipsec.secrets
我採用的是sample roadwarrior,如果要用其他的寫法,請參考man ipsec.secrets

代碼: [選擇]
# sample roadwarrior
%any gateway.corp.com: PSK "shared secret with many roadwarriors"
%any 10.0.2.1 : PSK "passwd"

編輯/etc/sysctl.conf,啟用IPv4轉發

代碼: [選擇]
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter = 0

編輯完後,執行以下指令,使其生效

代碼: [選擇]
sysctl -p

腳本設定

代碼: [選擇]
#!/bin/bash
for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done

防火牆

代碼: [選擇]
iptables  -t nat   -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j MASQUERADE

驗証IPSec

代碼: [選擇]
ipsec verify

若出現以下訊息,是說明並沒有將ICMP給關閉,請執行上面的腳本設定或是將其放至/etc/rc.local裡,開機時,自動啟用。

代碼: [選擇]
NETKEY: Testing XFRM related proc values
         ICMP default/send_redirects                [NOT DISABLED]

  Disable /proc/sys/net/ipv4/conf/*/send_redirects or NETKEY will cause act on or cause sending of bogus ICMP redirects!

         ICMP default/accept_redirects              [NOT DISABLED]

  Disable /proc/sys/net/ipv4/conf/*/accept_redirects or NETKEY will cause act on or cause sending of bogus ICMP redirects!

再次執行

代碼: [選擇]
ipsec verify

連結IPSec

代碼: [選擇]
ipsec auto --up net-net


參考文獻
太多了,大概看了二十幾篇綜合的結果,有參考日京三子大的筆記、ubuntu官方、對岸同胞的博客及一些國外的網站,總而言之,族繁不及備載。

7
Linux 討論版 / 【請教】L2TP over ipsec
« 於: 2014-04-08 10:49 »
請問各位大大:
os: ubuntu12.04.4 (二台都是),通通都在virtualbox測的
L2TP over ipsec 要怎麼連線?

我目前架二台L2TP over ipsec,
server1:
  eth0:10.0.1.10 (NAT 網路) gw 10.0.1.1
  eth1:192.168.1.10 (內部網路) 沒有gw
server2:
  eth0:10.0.1.11(NAT 網路) gw 10.0.1.1
  eth1:192.168.2.10 (內部網路) 沒有gw


目的是要把從server1到server2的內部網路互相打通?

我下xl2tpd -D
出現IPsec SAref does not work with L2TP kernel mode yet, enabling forceuserspace=yes

8
程式討論版 / shell script 請教
« 於: 2014-02-13 11:55 »
各位大大好,小弟又來發問了,目前的情況是我要寫一支shell script去檢查某一支php有沒有執行,但每次執行出來的都是fail,煩請各位大大指教

代碼: [選擇]
PHP='/var/www/user.php'
CHECK=`ps axu | grep php | awk '{ print $12 }' | grep $PHP`

if [ ${CHECK} = ${PHP} ];then
  echo "OK"
else
  echo "Fail"
fi

代碼: [選擇]
執行結果:
+ PHP=/var/www/user.php
+ grep /var/www/user.php
+ awk { print $12 }
+ grep php
+ ps axu
+ Check=/var/www/user.php
/var/www/user.php
+ [ = /var/www/user.php ]
check_php: 16: [: =: unexpected operator
+ echo Fail
Fail





9
各位大大好:
想請教一下,因我目前有一個資料夾,裡面都是一些圖片檔,常常被砍掉裡面的所有圖片,但目前不確定是被誰(daemon),那目前小弟的做法是直接在那資料夾做一個假的檔案,叫test.jpg,並且透過inotifywatch去監控那隻test.jpg,我目前所能獲得的資訊只有幾點幾分被砍,但不知道該如何追蹤是被誰砍掉?煩請有經驗的大大指導!

10
程式討論版 / shell script 求救
« 於: 2013-12-19 17:39 »
各位大大好:

代碼: [選擇]
#!/bin/bash
src="/backup/test/temp/"
dest1="/backup/test/pickup-primary/1/"
dest2="/backup/test/pickup-backup/321/"
dest3="/backup/test/pickup-primary/46/"
dest4="/backup/test/pickup-backup/89"
while read line
do
if [ -e $src$line ]; then
        echo "exists"
        echo "$src$line to $dest1"
fi
done < $@

我已經將要read line的檔案都存在自已的家目錄底下,總共有四個file.txt,裡面都是存檔案的名字
主要目的是:希望當我去執行這支shell script,$@會把我的家目錄底下的4支file.txt給吃進來時, $dest1會隨著吃完$@時做+1的動作,已達成全自動的目的!


但目前卻只能寫成半自動的,只好每次都進來修改$dest後面這個數字,請問小弟應該如何修改才能寫成全自動?


我執行下面的script, sh -x test.sh  file1.txt file2.txt file3.txt file4.txt,出現: No such file or directory

代碼: [選擇]
#!/bin/bash
src="/backup/test/temp/"
dest1="/backup/test/pickup-primary/1/"
dest2="/backup/test/pickup-backup/321/"
dest3="/backup/test/pickup-primary/46/"
dest4="/backup/test/pickup-backup/89"
while read line
do
if [ -e $src$line ]; then
        echo "exists"
        i=1
        echo "$src$line to $dest$i"
fi
i=$(($i+1))
done < $@


11
Windows 討論版 / 【請教】windows server 版本
« 於: 2013-10-30 12:19 »
各位大大好:

小弟公司目前內部要安裝一台windows server來做AD,不曉得大家都是用windows server 2008 R2還是windows server 2012 R2?
哪一個比較好用? ??? ??? ???之後還會跟ldap做整合@@


ps  公司打算用pc來架,core i3的機器會太弱嗎?


12
程式討論版 / [求救] 使用grep
« 於: 2013-06-19 19:27 »
各位大大好:

小弟遇到一個很棘手的問題,我有一堆整理過的sql資料,已存成文字檔,但因主管要求需要過濾找出,第一行為UPDATE git.lab,第二、四行結尾為WHERE u_id='123456' 這種的 <---裡面數字會換,且又要排除UPDATE git.lab SET u_name = 'GG' WHERE `u_id`  = '476532'這種的為一行的,請問我該如何下?或是轉寫成shell script?(因檔案有100多個)


正確要的資料如下:
這是取四行的結果:
UPDATE git.lab SET u_name='user', u_city='', u_addr='台北縣',^M
         u_post='813', u_tel='09xxxxxxx', u_page='http://', u_page_name='',^M
         u_intro='', u_sex='2',u_acc='xxxx@yahoo.com.tw',u_email='xxxxxx@yahoo.com.tw',u_byr='1987', u_bmn='11', u_bdy='21',^M
         u_cname='xxx',u_eid=''  ,u_city_id =20 WHERE u_id='405306'
這是取二行結果:
UPDATE git.lab ^M
                SET u_city_id='4', u_addr='新北市', u_post='234'   , u_byr='1987', u_bmn='1', u_bdy='8', u_birthday_changed='Y'  , u_cname='xxx' , u_sex='2', u_photo='girl',u_update=now() WHERE u_id='405394'
/

要排除的→ UPDATE git.lab SET u_count=u_count+'10', u_count_num =u_count_num+'10', u_point =u_point+'1' WHERE u_id='70904'


我目前用grep -A 4 UPDATE git.lab >> test.txt

煩請各位大大指導小弟。

13
程式討論版 / shell script請教read?
« 於: 2013-03-04 15:50 »
#!/bin/bash
log="/var/log/nginx-access.log"
IP=`/usr/bin/awk '{print $1}' $log | /usr/bin/sort | /usr/bin/uniq > /home/test/IP.txt`

while read line
do
       count=`/bin/cat $log | /bin/grep $line | /bin/grep 'GET /photo' | /usr/bin/wc -l`
       count1=`/bin/cat $log | /bin/grep $line | /bin/grep 'GET /images' | /usr/bin/wc -l`
       echo "IP:$line  Get Photo count:$count" >> /home/test/GET_count.txt
       echo "IP:$line  Get Images count:$count1" >> /home/test/GET_count.txt
done < /home/test/IP.txt

/usr/bin/awk -F: '{print $3}' /home/daniel/GET_count.txt | /usr/bin/awk 'BEGIN{total=0}{for(i=1;i<=NF;i++) total+=$i;}END{printf("total=%d\n",total)}' >> /home/test/GET_count.txt

/usr/bin/awk '{for(i=1;i<=NF;i++)printf("%-20s",$i); printf("\n");}' /home/daniel/GET_count.txt > /home/test/GET_test.txt


想請問一下,因為log有很多個,但我是用read這個去做讀取,但是沒有辦法做到讓read讀取第一個log的時候,先把第一個log先分析完,再放入第二個log做分析,要麻煩各位大大指點一下迷津。

另外想再請問一下,要怎樣才可以把要分析的log的時間,存成檔案,我的意思如下
-rw-r-----  1 root root 401568505 Feb 28 17:04 nginx-access.log

就是透過上面那支script分析nginx-access.log,然後分析完的結果存成Feb 28.txt

煩請指教....!!!



14
請問各位大大:
小弟最近在研究tfn2k這個工具,我有在centos 5.8 x64及ubnutn 11.04 x64的系統上做編譯,也上網查過相關文章,沒看到有人有這方面的解法,故~到此版詢求有經驗的版大指點迷津,我附上我的做法及錯誤訊息。

實測環境 ubuntu 11.04 x64  皆有二台ubuntu
主控端:192.168.1.1
被控端:192.168.1.2


# wget http://www.xfocus.net/tools/200405/tfn2k.tgz
#tar zxvf tfn2k.tgz
#cd tfn2k/src
#vim ip.h
修改123行,並注解掉以下
#ifndef in_addr
/*struct in_addr
  {
    unsigned long int s_addr;
  };*/
vim mkpass.c
修改87行,並加入0777
原始:fd = open ("pass.c", O_WRONLY | O_TRUNC | O_CREAT);
修改後:fd = open ("pass.c", O_WRONLY | O_TRUNC | O_CREAT, 0777);


vim disc.c
修改30行,並加入0777
原始:close (open ("agreed", O_WRONLY | O_CREAT | O_TRUNC));
修改後:close (open ("agreed", O_WRONLY | O_CREAT | O_TRUNC, 0777));

#make
按完yes後,會需要輸入8-16碼的密碼,即可完成。

然後我就透過scp把td檔丟到另一台虛擬機,並將td 檔改成以下權限
-rwxr-xr-x 1 root   root   42384 2012-07-13 16:16 td
再回到主控端執行 ./tfn -h 192.168.1.2  -c 10 -i "mkdir test"
會要求你輸入當時編譯時輸入的密碼

        Protocol      : random
        Source IP     : random
        Client input  : list
        Command       : execute remote command

Password verification:
Sorry, passwords do not match.
1 IyD//wAAAACPTP//AAAAAICb//8AAAAAhVT//wAAAABwZuXtAAAAAP0Q//8AAAAAAAAAAA
2 IIH//wAAAADUGiXhAAAAAHtk//8AAAAAg6T//wAAAAAFb///AAAAAElmxRMAAAAAAAAAAA



煩請各位大大指點迷津



15
$sudo apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi mysql-server php5-mysql

$sudo apt-get install build-essential

$sudo apt-get install libapache2-mod-perl2 php5-gd libxml-simple-perl libcompress-zlib-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl php-pear php5-dev libnet-ip-perl

$sudo apt-get update

$sudo apt-get upgrade

$sudo wget ftp://linvinus.ru/ocs/1.3.2/OCSNG_UNIX_SERVER-1.3.2-linvinus-with-utf8_patch.tar.gz

$sudo tar xvf OCSNG_UNIX_SERVER-1.3.2-linvinus-with-utf8_patch.tar.gz

$ cd ocsinventory-server-1.3.2

確認以上套件都有裝入後,即可執行

$ sudo sh setup.sh

跳出來選項都使用預設值即可,安裝完成後,需重新啟動apache2

$sduo service apache2 restart

登入:http://伺服器IP/ocsreports/install.php做設定
1.   設定連結SQL,需和之前LAMP時設定SQL要一致,輸入完畢後,按『send』。
2.   按『送出查詢』
3.   點選『Click here to enter OCS-NG GUI』
4.   進入到登入畫面,預設帳密為『admin』

========================================================================================

安裝GLPI
先至官網 http://www.glpi-project.org/?lang=en 下載最新套件,已支援繁體中文。
$sudo wget https://forge.indepnet.net/attachments/download/974/glpi-0.80.4.tar.gz
$sudo tar xvf glpi-0.80.4.tar.gz
$ sudo cp -a glpi  /var/www
$cd /var/www
$sudo chown www-data.www-data –R glpi
要是有遇到File does not exist: /etc/apache2/htdocs
解決方式:
這是因為一般網頁都會放在/etc/apachee2/htdocs裡,這個文件不見了,導致找不到網站,所以我們要找/etc/apache2/http.conf檔,並新增DocumentRoot /var/www,重啟apache就可以了,這應該是重新定義網站根目錄的位置。

登入: http://伺服器ip/glpi

1.   選擇語系:繁體中文
2.   同意條款
3.   點選『安裝』
4.   點選『繼續』
5.   設定連結資料庫,Mysql主機:localhost  Mysql使用者:root  Mysql密碼:使用者自定
6.   創建一個新的資料庫為『glpi』
7.   點選『繼續』
8. 設定完成,點選『使用GLPI』
9. 進入到登入頁面,預設帳密:『glpi』
10. 登入到主畫面,準備要開始設定與ocs-ng的資料庫做連結
11. 點選『設定』→『一般』,設定啟用ocsng模式為『是』
12. 點選『localhost』
13. 『設定』→『OCSNG模式』→『通用』OCSNG資料庫使用UTF-8 設定為『是』,點選『更新』
14. 『設定』→『OCSNG模式』→『一般資訊』,將所有的否設定為『是』,點選『確定』,完成。




以下網址是小弟參考的來源:
ftp://linvinus.ru/ocs/
http://blog.163.com/ywz_306/blog/static/1325771120114311516668/
http://blog.chinaunix.net/space.php?uid=210925&do=blog&id=8902
http://vicchen39.pixnet.net/blog/category/794287
http://hi.baidu.com/lue_liu/blog/item/2b83ed059ec511121c958365.html




以上我都有在實際環際安裝成功,但目前尚有發現幾個問題
1.download下來的檔案,會有亂碼,但可以用記事本開啟後,選另存新檔,編號選『ANSI』即可解決。

2.目前無法抓到WINDOWS 旗艦版 X64 的序號。
3.『Windows Registry 』已有設定了,但無法被啟用,還在找問題中.....!!!

以上,如果有先進會解決的話,煩請指導小弟!謝謝!
第一次PO安裝文,如有錯誤,請各位多多指教!^^

16
Windows 討論版 / mail無法在同一天收到信
« 於: 2010-09-15 09:25 »
MAIL SERVER : 郵件伺服器型號 MS6025  (ShareTech)
                    郵件伺服器軟體版本 1.2.71
                    郵件伺服器服務 :
                  SMTP 伺服器 啟動          IMAPS 服務 啟動        垃圾信過濾 啟動           
                  SQL 服務 啟動              病毒信過濾 啟動         DNS 伺服器 停止
                  WEBMAIL 啟動              LDAP 服務 無           POP3 服務 啟動   
                  AD 帳號認證 無             POP3S 服務 啟動        IMAP 服務 啟動 

Question:為什麼客戶寫一封信寄到我們公司的業務信箱,同時也有寫cc給另外一個業務(outlook express),不過cc的業務並沒有收到信,也沒有出現任何錯誤訊息,也看過郵件伺服器的清單,確定信件有進來,也沒有被隔離和刪除,想請問一下,是什麼原因造成的?

以上   小弟不才,煩請各位高手指點迷津....謝謝

17
Linux 討論版 / centos 5.4 要做二顆hd做raid1
« 於: 2010-07-12 20:22 »
CPU:Q6600
RAM:4096
HD:500GB*2
SYSTEM:CentOS 5.4 64bit

想請問一下要怎麼把二顆實體硬碟透過centos 5.4 64bit來做raid...
有朋友說用boot kernel sync就可以做到mirror
因預算有限~無法加raid卡
請問我該怎麼做?



頁: [1]