Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Ansibleのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Ansible
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:設定管理]] [[en:Ansible]] [https://www.ansible.com/how-ansible-works www.ansible.com] より: :''Ansible は非常にシンプルな IT 自動化エンジンです。クラウドのプロビジョニングや設定管理、アプリケーションのデプロイ、イントラサービスのオーケストレーションなど、様々な IT にまつわる業務を自動化します。'' == インストール == 制御マシン (マスター) に {{Pkg|ansible}} パッケージを[[インストール]]してください。{{Pkg|python2}} も必要です。 自動デプロイや設定作業を適用したい管理マシン (ノード) には {{Pkg|python}} が必要で、''Python 3'' に対応していないモジュールを使用する場合は {{Pkg|python2}} をインストールして [[#Python の場所を Ansible に指定する|Python の場所を Ansible に指定する]]必要があります。ノードには通信手段 (通常は [[SSH]]) もインストールしてください。[[SSH_鍵#リモートサーバーに公開鍵をコピー|ssh 鍵の設定]]をすることで Ansible が使いやすくなりますが、必須ではありません。 == 基本的な使い方 == === インベントリ === {{ic|/etc/ansible/ansible.cfg}} のデフォルト設定では、{{ic|/etc/ansible/hosts}} にインフラを定義します。3つのノードからなる小規模なクラスタを定義するインベントリの例: {{hc|/etc/ansible/hosts| [control] 192.168.12.1 [managed] 192.168.12.2 192.168.12.3 }} ファイルの中でノードごとに属性を割り当てることができます。詳しくは [https://docs.ansible.com/ansible/latest/intro_inventory.html 公式ドキュメント] を読んでください。 === Ping === インベントリ内のノードが稼働しているか確認するには: $ ansible all -m ping === Playbook === Playbook はインフラをデプロイ・設定するための強力なツールです。詳しくは [https://docs.ansible.com/ansible/latest/playbooks.html 公式ドキュメント] を読んでください。以下は全ての Arch Linux ノードでシステムアップグレードを実行する例です。まず YAML 形式の playbook ファイルを作成します (インデントは空白2つです): {{hc|syu.yml| --- - name: All hosts up-to-date hosts: control managed become: yes tasks: - name: full system upgrade pacman: update_cache: yes upgrade: yes }} そして playbook スクリプトを実行: $ ansible-playbook --ask-become-pass syu.yml === Vault === [https://docs.ansible.com/ansible/latest/playbooks_vault.html#using-vault-in-playbooks vault] を使うことで機密データを playbook などに暗号化された状態で保存することができます。vault のパスワードはファイルに平文で保存できます。例えば {{ic|''myvaultpassword''}} という文字列を含んでいる {{ic|''vault_pass.txt''}} ファイルを Ansible で使用するには: $ ansible-playbook ''site.yml'' --vault-id ''vault_pass.txt'' {{ic|''vault_pass.txt''}} のパスワードを使って {{ic|''varname''}} という名前の変数の中身 {{ic|''the var content''}} を暗号化するには、以下のコマンドを使用します: $ ansible-vault encrypt_string --vault-id ''vault_pass.txt'' '<i>the var content</i>' --name ''varname'' コマンドラインに直接変数の中身を入力したくない場合は、以下のコマンドを実行することで標準入力から中身を入力することができます (ctrl-d で入力を終了します): $ ansible-vault encrypt_string --vault-id ''vault_pass.txt'' --stdin-name ''varname'' 上記のコマンドで playbook に挿入できる暗号化された変数が直接出力されます。暗号化された変数は YAML ファイルの中で他の変数と一緒に混ぜて使うことができます: {{bc|notsecret: myvalue mysecret: !vault {{!}} $ANSIBLE_VAULT;1.1;AES256 66386439653236336462626566653063336164663966303231363934653561363964363833313662 6431626536303530376336343832656537303632313433360a626438346336353331386135323734 62656361653630373231613662633962316233633936396165386439616533353965373339616234 3430613539666330390a313736323265656432366236633330313963326365653937323833366536 3462 other_not_secret: othervalue}} === パッケージ管理 === Ansible には [[pacman]] によるパッケージのインストール・削除やシステムのアップグレードを扱うための [https://docs.ansible.com/ansible/latest/pacman_module.html pacman モジュール] が存在します。 [[Arch User Repository]] ''(AUR)'' を扱うための [https://github.com/kewlfft/ansible-aur ansible-aur] などの非公式モジュールも GitHub にあります。 Ansible では root で ssh 接続することが前提となっていますが、AUR ヘルパーは root でビルドを実行することを許可しません。"you cannot perform this operation as root" というエラーで操作が失敗します。Ansible で自動化するために、''aur_builder'' などという名前のユーザーを作成して、[[sudoers]] で pacman を使うのにパスワードを必要としないように設定することを推奨します。Ansible では以下のようにして設定することができます: {{hc|task.yml|2= - user: name=''aur_builder'' - copy: path: /etc/sudoers.d/''aur_builder-allow-to-sudo-pacman'' content: ''aur_builder'' ALL=(ALL) NOPASSWD: /usr/bin/pacman validate: /usr/sbin/visudo -cf %s}} Ansible の {{ic|become: yes}} と {{ic|become_user: aur_builder}} パラメータと一緒に AUR ヘルパーや [[makepkg]] コマンドを利用してください。 == ヒントとテクニック == === ユーザーアカウントの作成 === Ansible はユーザーアカウントを管理することができ、新しいアカウントを作成することもできます。[https://docs.ansible.com/ansible/latest/user_module.html user モジュール] を使うことで playbook でアカウントを作成できます。任意でユーザーのパスワードを設定する {{ic|password}} 引数が使えます。モジュールに指定するときパスワードはハッシュ化する必要があります。[https://docs.ansible.com/ansible/latest/playbooks_filters.html#hash-filters ハッシュフィルタ] を使うことで Ansible の中でハッシュ化することが可能です: - user: name: ''madhead'' password: "<nowiki>{{</nowiki> '<i>user_password</i>' | password_hash('sha512', '<i>mypermsalt</i>') }}" shell: /usr/bin/nologin {{Tip|ハッシュ関数の二番目のパラメータとして指定する salt は変更してください。}} ユーザーアカウントを作成するときは vault を使ってパスワードを暗号化することが推奨されています。[[#Vault]] を見てください。ただし、暗号化された変数は直接パイプで渡すことができないため、先に別の変数に渡してからパイプで渡す必要があります。 また、ハッシュ化は Ansible の外で行うことも可能です。以下のコマンドは ''user_password'' を MD5 と SHA512 でハッシュ化した値を返します: $ openssl passwd -1 user_password === Python の場所を Ansible に指定する === Ansible は管理対象のマシンに [[Python]] を必要とします。デフォルトでは Ansible はリモートシステム上の {{ic|/usr/bin/python}} が 2.X あるいは 3.X バージョンの Python (特に 2.6 以上) だと想定しています。 使用するモジュールが Python 2 を必要とする場合、Ansible のインベントリファイルで {{ic|ansible_python_interpreter}} 変数を設定して Python 2 の場所を Ansible に指定する必要があります。以下のようにホストグループを使って設定できます: {{hc|Inventory file| [archlinux] server1 server2 [debian] server3 [archlinux:vars] ansible_python_interpreter<nowiki>=</nowiki>/usr/bin/python2 }} Python の設定に関する詳細は [https://docs.ansible.com/ansible/python_3_support.html], [https://docs.ansible.com/faq.html#how-do-i-handle-python-pathing-not-having-a-python-2-x-in-usr-bin-python-on-a-remote-machine], [https://docs.ansible.com/intro_inventory.html#list-of-behavioral-inventory-parameters] にあります。 == トラブルシューティング == === Unarchive === {{ic|unarchive}} モジュールは圧縮ファイルを解凍します。しかしながら ''tar'' ファイルのサポートが不十分で問題が発生することが [https://github.com/ansible/ansible/labels/unarchive github] で報告されています。特に {{ic|keep_newer}} パラメータを {{ic|yes}} に設定した場合に、冪等性が保証されません。{{ic|unarchive}} モジュールで問題が起こるときは、代わりに ''zip'' フォーマットを使用すると良いでしょう。 == 参照 == * [https://www.ansible.com/quick-start-video Ansible concept in 12 minutes] * [https://docs.ansible.com/ansible/latest/pacman_module.html pacman モジュールの詳細]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
Ansible
に戻る。
検索
検索
Ansibleのソースを表示
話題を追加