20200810のLinuxに関する記事は4件です。

Ubuntu LTS 20.04 でスピーカーが音が出なかった件について

Ubuntu LTS 20.04 でスピーカーが音が出なかった件について

初投稿の記事です.
拙いところもあると思いますが, なにかの助けになればと思います.

最近使い始めたUbuntu 20.04 でスピーカーが認識されているにもかかわらず音が出ないという問題が発生しました.
極めて困りましたね.

使用しているスピーカーは JBL Pebbles USB接続で特にドライバーなどの設定がいらないものです.

接続をした後サウンド設定上で認識はされており, なおかつ音量バー上ではきちんと音が出ているはずなのですが, 実際スピーカーからは音が出ていないという珍妙極める現象でした.

解決法

結論からいいますとalsamixerを使いました.
以下のコマンドを実行します.
sudo alsamixer
すると以下のような画面が出ます.
Screenshot from 2020-08-10 15-47-00.png

環境によりけりですが, いくつかのサウンドカードから一つが選ばれて出てくるはずです.
F6を押してサウンドカード選択を行います. 今回は JBL Pebblesを選択します.

Screenshot from 2020-08-10 15-47-50.png
僕の場合出力側であるPCMの規程値が0(Mute)になっていたので, 上記画像の通り音量を上げました.
(余談ですが, JBLはもとの音量が極めて大きいのでここで小さめに設定しておくことで調整がしやすくなります)

あとはescキーで終了して設定完了です.

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Linux】hostnameコマンド以外でのホスト名確認方法とは?

はじめに

一昨日、このような記事を投稿したところ、有難いことに反響が大きかったです。
【Linux】インフラエンジニアの僕が「hostname」コマンドを使わない理由とは?

今回の記事では、Linuxでのhostnameコマンド以外のホスト名確認方法について紹介していきたいと思います。

hostnameコマンド以外のホスト名確認方法

uname -n

unameとはシステム情報を表示するコマンドになります。

こちらのコマンドに、-nのオプションを付けると、ホスト名を表示させることができます。

コマンド
uname -n
実行結果
[root@tspdev01 ~]# uname -n
tspdev01
[root@tspdev01 ~]#

hostnamectl status

Linux7系(RHEL/CentOS)にて使用できるホスト名確認コマンドになります。

コマンド
hostnamectl status
実行結果
[root@tspdev01 ~]# hostnamectl status
   Static hostname: tspdev01
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 4ac15a471f30914187be09916857cdb9
           Boot ID: bedcdc6861c34bc5881a2ddb91c7955c
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1127.13.1.el7.x86_64
      Architecture: x86-64
[root@tspdev01 ~]#

echo $HOSTNAME

変数HOSTNAMEの値を確認することによって、ホスト名を確認することができます。

コマンド
echo $HOSTNAME
実行結果
[root@tspdev01 ~]# echo $HOSTNAME
tspdev01
[root@tspdev01 ~]#

【番外編】テストユーザーを作成して「hostname i」と実行してみる。

ホスト名がiになるのか検証してみます。

OSはこちらになります。

OSバージョン
[dev@tspdev01 ~]$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[dev@tspdev01 ~]$

1.ユーザー作成

devユーザーを作成する。

コマンド
useradd -m dev
実行例
[root@tspdev01 ~]# useradd -m dev
[root@tspdev01 ~]#

2.作成したユーザーにパスワードを設定

devユーザーにパスワードを設定する。

コマンド
passwd dev
実行例
[root@tspdev01 ~]# passwd dev
ユーザー dev のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@tspdev01 ~]#

3.devユーザーにスイッチ

rootユーザーからdevユーザーにスイッチします。

コマンド
su - dev
実行例
[root@tspdev01 ~]# su - dev
[dev@tspdev01 ~]$

4.hostname iと実行する。

実行結果
[dev@tspdev01 ~]$ hostname i
hostname: you must be root to change the host name
[dev@tspdev01 ~]$

結果的に、rootユーザーが求められて変更できませんでした。

まとめ

hostnameコマンド以外のホスト名確認コマンド

  • uname -n
  • hostnamectl status
  • echo $HOSTNAME

○一般ユーザーでhostname iを入力するとどうなる?

root権限が求められ、ホスト名が変更できなかった。

参考記事

変数 HOSTNAME
6.3. HOSTNAMECTL を使用したホスト名の設定
実は簡単!Linuxユーザの作成方法と追加方法

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ansible入門 その② '基本文法'

Ansible基本文法まとめ

本当に基本的な文法

コメントアウト

#をつけるだけでコメントアウトできる。

コメント(YAML)
# をつけるとコメントになります。

リスト

YAMLのリストは、JSONやRubyでの配列、Pythonにおけるリストと同じ。
(厳密には、YAMLではシーケンスと呼ばれる)

リスト(YAML)
- 太郎
- 17歳
- 男性

これは、JSONでは以下のように示される。

リスト(JSON)
[
  "太郎"
  "17歳"
  "男性"
]

辞書

YAMLの辞書は、JSONのオブジェクト、Pythonの辞書と等しい。
(厳密には、マッピングと呼ばれる)

辞書(YAML)
name: パブロ・ディエゴ・ホセ・フランシスコ・デ・パウラ・ホアン・ネポムセーノ・マリーア・デ・ロス・レメディオス・クリスピン・クリスピアーノ・デ・ラ・サンディシマ・トリニダード・ルイス・イ・ピカソ
age: 17歳
gender: 男性

JSONでは以下のように書かれる。

リスト(JSON)
{
 "name": "パブロ・ディエゴ・ホセ・フランシスコ・デ・パウラ・ホアン・ネポムセーノ・マリーア・デ・ロス・レメディオス・クリスピン・クリスピアーノ・デ・ラ・サンディシマ・トリニダード・ルイス・イ・ピカソ",
 "age" : "17歳",
 "gender": "男性"
}

行の折り返し

>を使えば、行の折り返しが可能。
YAMLのパーサーは改行を空白に置き換えてくれる。

折り返し(YAML)
name: >
  パブロ・ディエゴ・ホセ・フランシスコ・デ・パウラ・ホアン・ネポムセーノ・ >
  マリーア・デ・ロス・レメディオス・クリスピン・クリスピアーノ・デ・ラ・ >
  サンディシマ・トリニダード・ルイス・イ・ピカソ

変数の代入

変数名を{{ }}で囲むだけ。

変数代入(YAML)
name: Picasso

{{name}}

Playbookの文法

Playbookの基本的な考え方

以下にサンプルのPlaybookを記載する。

Playbook.yml
---
- hosts: all
  tasks:
    - name: Hello World!
      debug:
        msg: "Hello World!"

上記のコードをJSONで書くと、以下のようになる。

Playbook.json
[
  {
    "hosts": "all",
    "tasks": {
      "name": "Hello World!",
      "debug": {
        "msg": "Hello World!"
      }
    }
  }
]

つまり、playbookは辞書のリスト形式で書かれていることがわかる。

Playbookには、
1. 対象となるホスト
2. ホスト上で実行する命令(タスク)のリストが必要になる。

以下に、playbookのリスト内でサポートされているオプションをいくつか挙げる。

name

リストの内容を示すコメント。Ansibleは実行開始時にこれを出力する。

hosts

設定するホストの集合を指定する。

become

このオプションが真に設定されていると、Ansibleはrootユーザーとしてsudoした上ですべての命令(タスク)を実行する。
(Ubuntuサーバーを管理する場合に役立つ。)

vars

変数と値のリスト。

tasks

ホスト上で実行する命令(タスク)のリスト。

handler

Ansibleが状態の変更を検出した場合、ハンドラを利用することで更なるアクションを起こすことができる。

tasks

以下に、tasks下に指定できるモジュールを挙げる。

apt

パッケージマネージャのaptを使ってパッケージのインストールや削除を行う。

copy

ファイルをローカルマシンからホストにコピーする。

file

ファイル、シンボリックリンク、ディレクトリの属性を設定する。

service

サービスの起動、停止、再起動を行う。

template

ファイルをテンプレートから生成し、そのファイルをホストにコピーする。
(ちなみに、copyとtemplateの違いは、変数が利用できるかどうか)

関連資料
Ansible入門 その① 'Hello World'
Ansible入門 その③ 'インベントリ'

参考文献
初めてのAnsible(Lorin Hochstein著,玉川竜司訳,株式会社オライリー・ジャパン版)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ubuntuが異常終了した際にやるべきこと

概要

Ubuntuが異常終了した際に行ったことを記録として残します。
環境:Ubuntu 20.04 LTS

fsck

Windowsではscandiskに相当するコマンドでファイルシステムのスキャンと修復が行えます。
システムが異常終了した際に自動的に実行されますが、forcefsckファイルをホームディレクトリに作成することで、次回起動時に強制的に実行できます。

sudo touch /forcefsck

結果の確認は以下の通り。

sudo cat /run/initramfs/fsck.log 

特に問題なければ以下のように表示されます。

/dev/nvma03x1: clean, 239896/31227904 files, 4604346/124895488 blocks

debsums

Windowsではsfc/scannowに相当するコマンドでインストール済みパッケージの整合性が確認できます。

sudo apt install debsums

下記コマンドで変更のあった箇所のみを表示できます。

sudo debsums -s

参考

https://www.xmisao.com/2014/02/06/force-fsck-or-reboot-fast-with-shutdown-command.html
http://manpages.ubuntu.com/manpages/trusty/man1/debsums.1.html

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む