hananana007なんでもブログ

日々思うことや、仕事のことなど書いていきます。

Ansibleでユーザーを追加する

Ansibleの勉強を兼ねてユーザー作成を自動化してみたいと思います。 まだAnsibleを勉強し始めたばかりなのでシンプルなplaybookしか書けませんが、とりあえず期待した動作をしたのでメモしておきます。

一般ユーザを作成するケースとsudoができる運用ユーザーを作成するケースの2つを試してみました。 最初に何も考えずにパスワードを指定すると、/etc/shadowファイルにそのまま追記されてログインすることができませんでした。Hash化したパスワードを指定する必要があるという事を知るまで結構時間がかかりました。Linuxが苦手だとAnsibleを覚えるのに時間がかかりそうです。頑張ります。

作業環境

項目 バージョン
Ansible 2.9.14
Python Python3.6.8
Ansible Server OS CentOS 8
Target OS CentOS 7

インベントリファイル(共通)

1台の仮想マシンを対象にしたいと思います。

[webserver]
web01 ansible_host=192.168.33.10 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

sudoユーザを追加する場合

追加するユーザーをwheelグループに追加したいと思います。

---
- name: Create users from import file.
  hosts: webserver
  gather_facts: false
  become: yes
  vars_files:
          - user-list.yml
  tasks:
    - name: Create users
      user:
        name: "{{ item.name }}"
        password: "{{ item.password }}"
        groups: "{{ item.groups }}"
        update_password: on_create
      with_items:
        - "{{ add_users }}"

vars_filesで指定したuser-list.yml

---
add_users:
  - { name: 'admin01', groups: 'wheel', password: "{{ 'Passw0rd' | password_hash('sha512') }}" }
  - { name: 'admin02', groups: 'wheel', password: "{{ 'Passw0rd' | password_hash('sha512') }}" }
  - { name: 'admin03', groups: 'wheel', password: "{{ 'Passw0rd' | password_hash('sha512') }}" }

成功しました。admin01でSSHした後にsudoできました。wheelに追加されていることを確認。

# ansible-playbook -i inventory.ini user-add.yml

PLAY [Create users from import file.] ************************************************************************************************

TASK [Create users] ******************************************************************************************************************
changed: [web01] => (item={'name': 'admin01', 'groups': 'wheel', 'password': '$6$S8NVqsK3Nyej3iEy$rnwIOB7vC2YQw5TrmZwACWqURex6JCDxAATVmbIVd85JpUqIwRjOx6CZOTEOZNMaVlN5tiDHUDvM9uWp/9n02.'})
changed: [web01] => (item={'name': 'admin02', 'groups': 'wheel', 'password': '$6$r/3W/4BofcAA7uP2$MNuPJdiDQCgqej4TmboKql7mM/9rWpSAIP.q9MAznl.sNxtlJdrWVWRKxC9lbupzMx1k0EwM.YOYmYGqCrxK7/'})
changed: [web01] => (item={'name': 'admin03', 'groups': 'wheel', 'password': '$6$HTmLLDLP6Lx1j/LP$PZ2zG0e2e056KBMx7g/YQ9TFrwtc5KxBB26wCY5ukQjct1cCbkkMB0tyQ490okCiI/ys5fyAPtwRzm4g9gagO0'})

PLAY RECAP ***************************************************************************************************************************
web01                      : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

一般ユーザーを追加する場合

userモジュールのgroupsパラメータを削除して、user-list.ymlでもgroupsを削除しています。

---
- name: Create users from import file.
  hosts: webserver
  gather_facts: false
  become: yes
  vars_files:
          - user-list.yml
  tasks:
    - name: Create users
      user:
        name: "{{ item.name }}"
        password: "{{ item.password }}"
        update_password: on_create
      with_items:
        - "{{ add_users }}"

vars_filesで指定したuser-list.yml

---
add_users:
  - { name: 'user01', password: "{{ 'Passw0rd' | password_hash('sha512') }}" }
  - { name: 'user02', password: "{{ 'Passw0rd' | password_hash('sha512') }}" }
  - { name: 'user03', password: "{{ 'Passw0rd' | password_hash('sha512') }}" }

とりあえずこれで動きました。 パスワードをベタ書きしなくても良い方法があるようですが、まだ私には早いと思います。そのうち試してみたいと思います。

成果を出せないミドルが多過ぎる

私の職場(課)には私よりも年上(50代)の部下が数名います。しかも新米課長の私よりも給料が多いという事実がそこにあります。階級も課長レベル。

通常ならリーダーとしてチームを率いてプロジェクトを進めて欲しいところですが、リーダーとしての力量というかヤル気がまったくありません(私はあるように感じていません)。

私が異動してくるまでは個人主義でタスクを割り振られていて、チームでプロジェクトを進めることがなかったという事も原因の一つではないかと考えています。ミドルの全員がチームメンバーと積極的にコミュニケーションを取ろうとはしませんし、何があればメールやチャットで済ませようとしています。

 

こんな状況なのでプロジェクトは進まず、メンバーへの指示もなく、成果が出ませんでした。本人達はリーダーの仕事をしていると主張しますが、スケジュール管理位しかやっていませんし、リーダーの役割を全く理解していないようでした(私はそう思っています)。リーダーを集めて週次ミーティングをやって動機付けを試みましたが、まず、ミーティングでの発言がありません。質問をしてもYes/Noでの返事や、困ったような、考えているような態度で全く返事ができずという始末。

去年一年間いろいろ試してみて思ったのは、このミドル達にはやりたいこと、達成したいことがなくて、目標がないからヤル気がでないのではないかという点でした。

 

今年はミドルリーダーを解任して、すべて若手(入社5年~6年)へ入れ替えました。スケジュール管理やプロジェクト計画など策定するのに時間がかかりましたが、ヤル気や目標がある分、去年よりも成果が出ていると感じています。リーダーを解任されたミドル達もメンバーとしてタスクをこなすだけの方が成果が出せているようです。

 

ミドルの扱い方などの本も出ていますが、私の感覚では、いまさらミドル(50代)の改革は無理ではないか?と感じています。彼らは今更新しい事を覚えるために努力をしたくないし、チームメンバーへ貢献することなど考えてもいないのです。

去年チームリーダーだったミドルの一人が若手メンバーと意見が食い違った時、若手メンバーをチームから外して欲しいと相談に来ました(来たというよりチャット。。。)。その際に先輩(役職でも課長レベル)として後輩に指導したのか質問すると、「先輩として技術的な回答はしていた」という返事が一行位で来ました。その瞬間に、少しは改善すると思っていた期待が無くなりました。

 

つまるところ、成果が出せないミドルはメンバーとの会話ができない人が多いと思ってます。10年前までは、まだ個人のスキルだけで仕事が成り立っていましたが、クラウド関連の仕事をしている現在は一人では何も達成できませんし、チームメンバーと協力することが不可欠です。

人の性格を変えることはできませんし、50代のミドルでは到底不可能だと思いますので、諦めて若手の育成に励みたいと思います。そうすることで私自身のストレスもかなり軽減できると思います。

 

 

コンテナセキュリティ関連メモ一覧

コンテナ・Kubernetesはまだ自社では本格導入できていませんが、今後の備えてコンテナ・Kubernetesの勉強を開始。コンテナはセキュアだと思っていましたがどうやらそうではないらしい。先人たちが共有してくれている知恵をメモ。

※随時更新

 

 

【ホワイトペーパー】

■NIST SP 800-190 (Application Container Security Guide)

IPAが日本語版を2020年9月に公開してくれてます。
 https://www.ipa.go.jp/files/000085279.pdf

■CIS Benchimarks

・Docker/Kubernetesベンチマークが公開されています。
 CIS Docker Benchmarks

 

 

セミナー】

■コンテナ環境をセキュアに運用する方法 #osc20on

■コンテナのセキュリティについて考えよう osc2020tk

 

 

 【ThinkIT】

■コンテナをセキュアに運用するために考えること 記事一覧

 

 

 

 

Ansible関連メモ一覧

最近になってAnsibleの勉強を始めました。

情報量が多くて何から手を付けてよいのか分かりませんが、とりあえず参考になりそうなサイトやカンファレンス・勉強会のスライドをメモ。これから熟読していきます。随時更新。

 

 

 

【Ansible 全般】

■Ansible Weblog

■てくなべ(Blog)

■赤帽エンジニアブログ(Blog)

■注目の構成管理ツールAnsibleを徹底活用する 記事一覧

■Ansibleで始めるサーバ作業自動化入門

 

【Ansible Tower関連】

■Ansible Tower 構築方法と使い方

■Ansible tower 構築方法と使い方 with VMware モジュール Rev2.2

 

 

 

【ネットワーク自動化】

 

 

 

【Ansible 100本ノック】

■Ansible Playbook Examples – Sample Ansible Playbooks

■Ansible Workshop - Ansible for Red Hat Enterprise Linux

■Ansible Network Automation Workshop

■Ansible Advent Calendar 2019

1:https://qiita.com/advent-calendar/2019/ansible

2:https://qiita.com/advent-calendar/2019/ansible2

3:https://qiita.com/advent-calendar/2019/ansible3

■Ansible Advent Calendar 2018

https://qiita.com/advent-calendar/2018/ansible

■Ansible Advent Calendar 2017

https://qiita.com/advent-calendar/2017/ansible

あたりまえができない部下に思う事

ADHDであろうと思う部下が数名います。

彼らはスケジュール管理やコミュニケーションが苦手です。しかし、自分で自覚していないのか、かなり自己評価が高いので困っています。朝一にメールで依頼したタスクはほぼ間違いなくできません。何ができないかというと、メールは見ているようですが、それが自分のタスクとしてスケジュールされていないため何も手がついていないようです。メールの〇〇の件だけど、と言うとメールの概要は把握しているようです。

なので、何度もメールやTeamsでフォローするのですが、フォローすると他のタスクが滞ってしまいます。一日何をしているのだろう??と思ってしまいますが、彼らは自分がすごく仕事をしていると感じているようです。

 

このような部下をどうすれば使えるようになるのか探るために、ADHDの方が書いた本を読んでみました。彼らが何が苦手なのか、何ができる(得意)なのかを知るために。 

 結局のところ、苦手な部分は見えてきましたが得意な部分は見えてきませんでした。普通に生活するのも苦手なようです。(それは部下を見ていて分かります)

 

とにかく、長期間のスケジュールや高いハードルを課すような仕事はやっぱりできないようなので、一日一日仕事を振った方が良いのでしょうか。それはそれで、こちらの負荷が高くなりノイローゼになりそうなので避けたいところ。スケジュール管理システムを導入しているので、そちらで日々フォローする位がちょうど良いと思います。

 

ADHDという症状を知ってからは、あまりイライラすることが無くなりました。それだけでも収穫ありかな。

残業の原因について思う事(2020/10/23)

残業ゼロを目指して今週は取り組んでみましたが、やっぱり残業してしまいました。在宅勤務が中心ですが、課会や部会などの外せない打ち合わせを除いて、打ち合わせが大半を占めてます。

これまで全員出勤していて、席まで歩いてきてちょっと会話すれば解決できていたことが、事前にアポを取り、スケジュールされていくので効率が悪くなっている気がします。Teamsなどのチャットやメールだけで済むのであればそうして欲しいですね。出社でも在宅でも会話の時間はそんなに変わらないですが、Teamsやメールで打ち合わせ時間を調整している時間があれば会話して終了できるような事も多い気がしてます。

先週まではTeamsで通知来るたび逐一チェックしてましたが、ちょっと時間を置くようにしてみました。即レスするのが流儀だと思って返信していたのですが、返信すればするほど帰ってくるのでキリがないですね。

 

打ち合わせとTeams・メール返信の時間を減らすことができれば残業もかなり削減できるかな。

本日定時であがりました

残業ゼロなんてとても無理ですが、ノー残業デーを何日か作ってみようと試みてます。

 

いつもはAM 7:00位に会社のシンクライアントにログインして、メールの返信や仕掛の作業を実施します。10:00からは打ち合わせが多く、日によっては10:00~18:00までギッシリ打ち合わせが入れられたりします。なので残業が当たり前のような毎日で、周りの皆も深夜でも依頼メールやチャットをしてきます。

 

しかし、本日の私は違います。AM 9:00までログインするのを我慢して、メールを見るのも全集中で処理。打ち合わせが2本入ってましたが、空き時間に宿題を処理して明日に持ち越さずに17:35に就業。その後のメールも見ずに家族団らんで夕食をいただきました。

 

いつもなら22:00ぐらいまで平気で返信したり、土日にメールしたりしてますが。そうすることで、定時内に承認依頼やレビュー依頼をするのではなく、定時後に依頼されることが多くなった気がしていたので、強制的に受付しないようにしたいと考えてます。

 

とにかくTeamsのチャットは延々と続けてしまって辞められないので、返信しない戦法。しかし、成果は今まで以上に出せるように空いた時間でスキルアップやリフレッシュしようと思います。