Skip to content

Instantly share code, notes, and snippets.

@hiroyuki-sato
Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiroyuki-sato/f9d467fc99d820555890 to your computer and use it in GitHub Desktop.
Save hiroyuki-sato/f9d467fc99d820555890 to your computer and use it in GitHub Desktop.
コネタ、VyOS 1.1.0で導入された二つのコマンド

コネタ、VyOS 1.1.0で導入された二つのコマンド

VyOS Advent Calendar 11日目の記事です。(本当は12日目だけど..)

VyOS 1.1.0で導入された二つのコマンドを紹介します。 リリースノートには載っているのですが、使ったことがなかったので使ってみました

  • strip-private
  • commands

strip-private プライベートな情報を隠してくれる

blogに設定を載せる際あフォーラムで設定を投稿する際に、show configurationの結果を貼付けようとしたら、パスワードなど公開したくない情報が載って隠すの面倒だなと思っている方はstrip-privateを使ってみましょう

次のようにパイプでつなぐだけです。

show configuration | strip-private

出力例は次のようになります。(※ 標準のVyOSにはないコマンドが入っています。) ユーザ名や、IPアドレスなどを、「xx」に置き換えてくれます。

質問の際には、必要な箇所だけ修正してください。

interfaces {
    ethernet eth0 {
        address dhcp
        duplex auto
        hw-id XX:XX:XX:8f:10:55
        smp_affinity auto
        speed auto
        vrrp {
            vrrp-group 100 {
                advertise-interval 1
                description test
                preempt true
                virtual-address xxx.xxx.100.245/24
            }
        }
    }
    loopback lo {
    }
}
service {
    ssh {
        port 22
    }
}
system {
    config-management {
        commit-revisions 20
    }
    console {
        device ttyS0 {
            speed 9600
        }
    }
    host-name xxxxxx
    ipv6 {
    }
    login xxxxxx
        user xxxxxx {
            authentication {
                encrypted-password xxxxxx
            }
            level admin
        }
    }
    logrotate log3 {
        compress true
        interval hoge
        path /a/b/c
        path /c/d/e
        rotate 1234
    }
    logrotate squid {
    }
    logrotate squid2 {
    }
    ntp {
        server xxxxx.tld {
        }
        server xxxxx.tld {
        }
        server xxxxx.tld {
        }
    }
    package {
        auto-sync 1
        repository community {
            components main
            distribution hydrogen
            password xxxxxx
            url http://packages.vyos.net/vyos
            username xxxxxx
        }
        repository squeeze {
            components "main contrib non-free"
            distribution squeeze
            password xxxxxx
            url http://mirrors.kernel.org/debian
            username xxxxxx
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
}

一度ファイルを保存してしまった。という場合でも大丈夫です。

show configuration > config
cat config | strip-private    

上記と同じ出力が得られます。

commands: show configurationからsetコマンドを生成する

show configurationの一部だけset xxxで再実行したい場合はcommandsが便利です。

先ほど保存した設定ファイルをcommandsコマンドに渡します。

cat config | commands        

実行結果は次のようになります。(※ 設定を一部隠すためにstrip-privateを実行しています。)

set interfaces ethernet eth0 address 'dhcp'
set interfaces ethernet eth0 duplex 'auto'
set interfaces ethernet eth0 hw-id 'XX:XX:XX:8f:10:55'
set interfaces ethernet eth0 smp_affinity 'auto'
set interfaces ethernet eth0 speed 'auto'
set interfaces ethernet eth0 vrrp vrrp-group 100 advertise-interval '1'
set interfaces ethernet eth0 vrrp vrrp-group 100 description 'test'
set interfaces ethernet eth0 vrrp vrrp-group 100 preempt 'true'
set interfaces ethernet eth0 vrrp vrrp-group 100 virtual-address 'xxx.xxx.100.245/24'
set interfaces loopback 'lo'
set service ssh port '22'
set system config-management commit-revisions '20'
set system console device ttyS0 speed '9600'
set system host-name 'xxxxxx'
set system 'ipv6'
set system login 'xxxxxx'
set system user xxxxxx authentication encrypted-password 'xxxxxx'
set system user xxxxxx level 'admin'
set logrotate log3 compress 'true'
set logrotate log3 interval 'hoge'
set logrotate log3 path '/a/b/c'
set logrotate log3 path '/c/d/e'
set logrotate log3 rotate '1234'
set logrotate 'squid'
set logrotate 'squid2'
set ntp server 'xxxxx.tld'
set package auto-sync '1'
set package repository community components 'main'
set package repository community distribution 'hydrogen'
set package repository community password 'xxxxxx'
set package repository community url 'http://packages.vyos.net/vyos'
set package repository community username 'xxxxxx'
set package repository squeeze components 'main contrib non-free'
set package repository squeeze distribution 'squeeze'
set package repository squeeze password 'xxxxxx'
set package repository squeeze url 'http://mirrors.kernel.org/debian'
set package repository squeeze username 'xxxxxx'
set syslog global facility all level 'notice'
set syslog global facility protocols level 'debug'
set time-zone 'UTC'

なお設定を主力するだけなら、show configuration commandsというのもあります。

VyOSの質問をしたり設定をする時にご利用ください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment