配置host檔案
# /etc/ansible/hosts
[test]
192.168.56.11
配置ssh免密登陸
ssh-keygen -t dsa -p '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
連通性測試
ansible all -m ping
# 指定使用者
ansible all -m ping --user=root
這是命令列工具
適用於業務變更,簡單的無邏輯的,如果複雜情況使用playbook.
# 列出目標主機 /root 下目錄
ansible test -m shell -a "ls /root" --user=root
# 使用密碼
ansible test -m shell -a "ls /root" --user=root --ask-pass
# 其他
定義主機關係的檔案
預設路徑為/etc/ansible/hosts
檔案格式為 ini
# 配置方式1
[test] # 組名
192.168.56.11
# 配置方式2
test ansible_ssh_port=22 ansible_ssh_host=192.168.56.13 ansible_ssh_user=root
[node]
test
# 配置方式3
[websrv]
www[01:50].example.com
[databases]
db-[a:f].example.com
# 配置 /etc/ansible/hosts
# 測試連通性
ansible test -m ping
# 安裝mariadb,為執行了2次才好
ansible test -m yum -a "name=mariadb-server state=latest"
# 啟動和暫停 systemctl start mariadb | systemctl stop mariadb
ansible test -m systemd -a "name=mariadb state=started"
ansible test -m systemd -a "name=mariadb state=stopped"
# 驗證是否啟動
ansible test -m shell -a "ps -ef | grep mysql |grep -v grep"
編寫playbook為yaml格式
# test.yml
-hosts
: test
remote_user
: root # 使用者
tasks:-
name
: hello world # 任務名字
shell
: ls /root # 執行的模組和引數
# 執行
ansible-playbook test.yml
playbook 基本結構
host: 被操作的機器
remote_user: 登入機器的使用者
tasks: 需要在機器上執行的任務
vars:
com: /root
使用的時候使用 "}"
com: ls /root 這個時候必須使用雙引號,其他的情況可以省略雙引號
# bool值
vars:
epic: true
# ture/false
# 非not epic
# when
# with_items 迴圈語句關鍵字
# vim init_flask.yml
---# 其實位置
-hosts
: test
remote_user
: root
become
:true
# 當前非root使用者,且ssh免密配置完成
tasks:-
name
: install python for centos # 當前任務名稱
yum:
name
: "}" # yum安裝軟體包的名稱,迴圈元素
state
: installed
with_items
:- python-devel
- python-setuptools
when
: ansible_distribution == "centos" # 必須是centos
-name
: install python for ubuntu
apt:name
:"}"
state
: latest
update_cache
: yes
with_items
:- libpython-dev
- python-setuptools
when
: ansible_distribution == "ubuntu"
-name
: install pip
shell
: easy_install pip
-name
: pip install flask and redis
pip:name
:"}"
with_items
:- flask
- redis
# ansible-playbook init_flask.yml
python運維 ansible迴圈
有可能在乙個任務中,可能要做很多事情,例如建立多個使用者,安裝很多個包等,那麼就有可能用到迴圈。重複的任務可以用下面的方式 name add several users user name state present groups wheel with items testuser1 testuse...
運維工具ansible 安裝篇
安裝ansible之後,不需要啟動或執行乙個後台程序,或是新增乙個資料庫.只要在一台電腦 可以是一台筆記本 上安裝好,就可以通過這台電腦管理一組遠端的機器.在遠端被管理的機器上,不需要安裝執行任何軟體,因此公升級ansible版本不會有太多問題 如果你已經基於ansible開發大量模組,你最好一直使...
自動化運維ansible
sever1 172.25.60.1 server2 172.25.60.2 server3 172.25.60.3 etc ansible ansible.cfg 主配置檔案,配置ansible工作特性 etc ansible hosts 主機清單 etc ansible roles 存放角色的目...