Ubuntu 20.10 で固定アドレスを設定する簡易スクリプト
Ubuntu 20.10 用に、簡単な固定アドレス設定スクリプトを作成したのでメモしておきます。 作り込みの要素は多々あると思います。
実行例
「IP アドレスは 10.0.0.1 に」「ゲートウェイは 10.0.0.254 に」設定する実行例は以下です。 当初は PyYAML を使っていたのですが、大した処理をしていないので PyYAML を使うのは止めました。
| chaddr -a 10.0.0.1 -g 10.0.0.254
|
スクリプト
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | #!/usr/bin/env python
import argparse
import subprocess
import textwrap
parser = argparse.ArgumentParser()
parser.add_argument('-a', '--address', required=True)
parser.add_argument('-g', '--gateway', required=True)
args = parser.parse_args()
hostname = args.address.replace('.', '-')
subprocess.call('hostnamectl set-hostname ' + hostname, shell=True)
netplan = textwrap.dedent('''
network:
ethernets:
ens160:
dhcp4: false
dhcp6: false
addresses: [{arg1}/24]
gateway4: {arg2}
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
version: 2
''').format(arg1=args.address, arg2=args.gateway).strip()
with open('/etc/netplan/99_config.yaml', 'w') as f:
f.write(netplan)
hosts = textwrap.dedent('''
127.0.0.1 localhost {arg1}
127.0.1.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet {arg1}
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
''').format(arg1=hostname).strip()
with open('/etc/hosts', 'w') as f:
f.write(hosts)
|